[2026-06-23 07:12:45.675] [INFO ] [Ysp.Scheduler] Started. SFTP in 19h 47m, MIS in 23h 47m [2026-06-23 07:12:45.743] [INFO ] :alarm_handler: {:set, {:system_memory_high_watermark, []}} [2026-06-23 07:12:45.759] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/"}, []}} [2026-06-23 07:12:45.759] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5ac02f430354be658e0135c16f9c5c73036e99cd70c78352a2f72d6bf47bb2af/merged"}, []}} [2026-06-23 07:12:45.759] [INFO ] :alarm_handler: {:set, {{:disk_almost_full, ~c"/var/lib/docker/overlay2/5f3fdd9b13261e59b7562aca9831101518237abaa6eb67abe9e41e0b402f7004/merged"}, []}} [2026-06-23 07:12:47.653] [INFO ] Terminal Event Listener started and listening to events [2026-06-23 07:12:47.655] [INFO ] Rule Validation Worker started - will run every hour [2026-06-23 07:12:47.658] [INFO ] Building initial filter cache... [2026-06-23 07:12:47.681] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=1.2ms idle=657.6ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 07:12:47.703] [DEBUG] QUERY OK source="filter_usage" db=0.8ms queue=2.2ms idle=440.3ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 07:12:47.704] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 07:12:47.856] [INFO ] Device phoenix_client_Sham connected [2026-06-23 07:12:47.918] [INFO ] Running PlatformWeb.Endpoint with Bandit 1.10.2 at 0.0.0.0:4026 (http) [2026-06-23 07:12:47.942] [INFO ] Access PlatformWeb.Endpoint at http://localhost:4026 [2026-06-23 07:12:48.539] [DEBUG] Tzdata polling for update. [2026-06-23 07:12:50.720] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 47µs Transport: :longpoll Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "LWk5ARl0Lx9TNHkyNSIwADAEMQs7GmI-jPlWr6bEgxOJRExlgLfXCvZd", "_live_referer" => "http://demo.ctrmv.com:4026/terminals", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4026/assets/app.css", "1" => "http://demo.ctrmv.com:4026/assets/app.js"}, "vsn" => "2.0.0"} [2026-06-23 07:12:50.740] [DEBUG] Tzdata polling shows the loaded tz database is up to date. [2026-06-23 07:12:51.742] [DEBUG] MOUNT PlatformWeb.TerminalLocationsLive Parameters: %{} Session: %{"_csrf_token" => "G9UVkBMZ4L6xggHlWHWSxl8Z", "live_socket_id" => "users_sessions:RmIr5ix6zjKQwDQUV3_w20juTLpyZdLfOJn-qLpSXiQ=", "user_token" => <<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>} [2026-06-23 07:12:51.860] [DEBUG] QUERY OK source="users_tokens" db=1.1ms queue=4.2ms idle=289.7ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>, "session", ~U[2026-06-23 07:12:51.824485Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-06-23 07:12:52.011] [DEBUG] QUERY OK source="tms_terminals" db=85.2ms queue=4.9ms idle=908.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:406 [2026-06-23 07:12:52.534] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=516.7ms queue=0.5ms idle=680.9ms SELECT t0.`terminal_id`, max(t0.`id`) FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE (t0.`terminal_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND t1.`itemkey` IN ('latitude','longitude')) GROUP BY t0.`terminal_id` [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 26, 29, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 60, 61] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:420 [2026-06-23 07:12:52.547] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.8ms queue=2.3ms idle=175.0ms SELECT t0.`terminal_id`, max(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) GROUP BY t0.`terminal_id` [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 20, 22, 23, 26, 29, 35, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 53, 60, 61] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:435 [2026-06-23 07:12:52.552] [DEBUG] QUERY OK source="tms_terminal_status_items" db=3.6ms queue=0.4ms idle=13.1ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [36750, 5539, 30717, 16099, 14055, 24914, 41238, 40151, 21561, 24662, 34584, 28095, 21678, 35829, 22345, 5499, 5486, 41355, 39756, 8788, 41314, 23998, 41285, 41284, 7335, 23973, 5495, 24539, 37565, 8760, 6171, 18630, 33446, 15230, 15147, 32284, 25675, 38945, 5453, 13926, 6790] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:448 [2026-06-23 07:12:52.590] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=35.9ms idle=5.2ms SELECT t0.`id`, t0.`inserted_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [36750, 5539, 30717, 16099, 14055, 24914, 41238, 40151, 21561, 24662, 34584, 28095, 21678, 35829, 22345, 5499, 5486, 41355, 39756, 8788, 41314, 23998, 41285, 41284, 7335, 23973, 5495, 24539, 37565, 8760, 6171, 18630, 33446, 15230, 15147, 32284, 25675, 38945, 5453, 13926, 6790] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:457 [2026-06-23 07:12:52.593] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=1.9ms idle=38.8ms SELECT DISTINCT t0.`vendor` FROM `tms_terminals` AS t0 WHERE (NOT (t0.`vendor` IS NULL) AND (t0.`vendor` != '')) [] ↳ TmsCore.TerminalManagement.list_distinct_vendors/0, at: lib/tms_core/terminal_management.ex:533 [2026-06-23 07:12:52.632] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms queue=3.0ms idle=37.7ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-06-23 07:12:52.634] [DEBUG] QUERY OK source="terminal_groups" db=0.6ms queue=0.5ms idle=39.9ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` [41] ↳ PlatformWeb.TerminalLocationsLive.mount/3, at: lib/platform_web/live/terminal_locations_live.ex:17 [2026-06-23 07:12:52.712] [DEBUG] QUERY OK source="tms_terminals" db=77.2ms idle=2.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368 [2026-06-23 07:12:52.750] [DEBUG] Replied in 1018ms [2026-06-23 07:12:52.785] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLocationsLive Parameters: %{} [2026-06-23 07:12:52.847] [DEBUG] QUERY OK source="tms_terminals" db=61.6ms idle=151.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368 [2026-06-23 07:12:52.849] [DEBUG] Replied in 63ms [2026-06-23 07:14:11.722] [INFO ] GET /terminals_all/locations [2026-06-23 07:14:11.760] [DEBUG] Processing with PlatformWeb.TerminalLocationsLive.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-06-23 07:14:11.778] [DEBUG] QUERY OK source="users_tokens" db=1.0ms idle=197.2ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>, "session", ~U[2026-06-23 07:14:11.777125Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-06-23 07:14:11.853] [DEBUG] QUERY OK source="tms_terminals" db=62.4ms idle=1121.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:406 [2026-06-23 07:14:12.299] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=444.2ms queue=1.3ms idle=181.3ms SELECT t0.`terminal_id`, max(t0.`id`) FROM `tms_terminal_status_logs` AS t0 INNER JOIN `tms_terminal_status_items` AS t1 ON t1.`status_log_id` = t0.`id` WHERE (t0.`terminal_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND t1.`itemkey` IN ('latitude','longitude')) GROUP BY t0.`terminal_id` [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 26, 29, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 60, 61] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:420 [2026-06-23 07:14:12.313] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.9ms queue=3.6ms idle=447.6ms SELECT t0.`terminal_id`, max(t0.`id`) FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) GROUP BY t0.`terminal_id` [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 18, 20, 22, 23, 26, 29, 35, 36, 37, 39, 42, 43, 44, 45, 46, 47, 48, 49, 53, 60, 61] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:435 [2026-06-23 07:14:12.320] [DEBUG] QUERY OK source="tms_terminal_status_items" db=4.9ms queue=0.9ms idle=14.6ms SELECT t0.`id`, t0.`itemkey`, t0.`value`, t0.`timestamp`, t0.`message`, t0.`status_log_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_items` AS t0 WHERE (t0.`status_log_id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [36750, 5539, 30717, 16099, 14055, 24914, 41238, 40151, 21561, 24662, 34584, 28095, 21678, 35829, 22345, 5499, 5486, 41355, 39756, 8788, 41314, 23998, 41285, 41284, 7335, 23973, 5495, 24539, 37565, 8760, 6171, 18630, 33446, 15230, 15147, 32284, 25675, 38945, 5453, 13926, 6790] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:448 [2026-06-23 07:14:12.357] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=35.1ms idle=7.3ms SELECT t0.`id`, t0.`inserted_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [36750, 5539, 30717, 16099, 14055, 24914, 41238, 40151, 21561, 24662, 34584, 28095, 21678, 35829, 22345, 5499, 5486, 41355, 39756, 8788, 41314, 23998, 41285, 41284, 7335, 23973, 5495, 24539, 37565, 8760, 6171, 18630, 33446, 15230, 15147, 32284, 25675, 38945, 5453, 13926, 6790] ↳ PlatformWeb.TerminalLocationsLive.preload_location_cache/0, at: lib/platform_web/live/terminal_locations_live.ex:457 [2026-06-23 07:14:12.361] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=37.8ms SELECT DISTINCT t0.`vendor` FROM `tms_terminals` AS t0 WHERE (NOT (t0.`vendor` IS NULL) AND (t0.`vendor` != '')) [] ↳ TmsCore.TerminalManagement.list_distinct_vendors/0, at: lib/tms_core/terminal_management.ex:533 [2026-06-23 07:14:12.399] [DEBUG] QUERY OK source="tms_terminals" db=37.6ms idle=3.9ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-06-23 07:14:12.400] [DEBUG] QUERY OK source="terminal_groups" db=1.1ms idle=38.4ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` [41] ↳ PlatformWeb.TerminalLocationsLive.mount/3, at: lib/platform_web/live/terminal_locations_live.ex:17 [2026-06-23 07:14:12.462] [DEBUG] QUERY OK source="tms_terminals" db=61.4ms idle=2.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368 [2026-06-23 07:14:12.518] [DEBUG] QUERY OK source="tms_terminals" db=54.6ms queue=0.1ms idle=63.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`area`, t0.`model`, t0.`imei`, t0.`remark`, t0.`vendor`, t0.`group`, t0.`inserted_at`, t0.`updated_at`, s1.`last_seen_at`, (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'battery' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'cpu' ORDER BY inserted_at DESC LIMIT 1), (SELECT value FROM tms_terminal_status_items WHERE status_log_id = t2.`id` AND itemkey = 'memory' ORDER BY inserted_at DESC LIMIT 1) FROM `tms_terminals` AS t0 LEFT OUTER JOIN (SELECT st0.`terminal_id` AS `terminal_id`, max(st0.`inserted_at`) AS `last_seen_at`, max(st0.`id`) AS `last_status_log_id` FROM `tms_terminal_status_logs` AS st0 GROUP BY st0.`terminal_id`) AS s1 ON s1.`terminal_id` = t0.`id` LEFT OUTER JOIN `tms_terminal_status_logs` AS t2 ON t2.`id` = s1.`last_status_log_id` [] ↳ PlatformWeb.TerminalLocationsLive.load_location_data/1, at: lib/platform_web/live/terminal_locations_live.ex:368 [2026-06-23 07:14:12.529] [INFO ] Sent 200 in 807ms [2026-06-23 07:14:29.704] [INFO ] GET /terminals [2026-06-23 07:14:29.705] [DEBUG] Processing with PlatformWeb.TerminalLive.Index.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-06-23 07:14:29.710] [DEBUG] QUERY OK source="users_tokens" db=4.2ms idle=125.8ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>, "session", ~U[2026-06-23 07:14:29.705555Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-06-23 07:14:29.744] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=5.8ms idle=986.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-06-23 07:14:29.764] [DEBUG] QUERY OK source="app_packages" db=1.6ms queue=4.0ms idle=725.8ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-06-23 07:14:29.797] [DEBUG] QUERY OK source="tms_terminals" db=32.3ms queue=0.2ms idle=0.2ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-06-23 07:14:29.800] [DEBUG] QUERY OK source="terminal_groups" db=0.6ms queue=1.8ms idle=0.6ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [41] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-06-23 07:14:29.801] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=2.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-06-23 07:14:29.878] [INFO ] Sent 200 in 173ms [2026-06-23 07:14:34.605] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 41µs Transport: :longpoll Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "dVAlHFgNAwtxKW5OUD8rXGI4GmBVOlAQ2ipJ3ONQEeX67Xc05pM3-VhJ", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4026/assets/app.css", "1" => "http://demo.ctrmv.com:4026/assets/app.js"}, "vsn" => "2.0.0"} [2026-06-23 07:14:34.855] [INFO ] GET /images/favicon.png [2026-06-23 07:14:34.943] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /images/favicon.png (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Shamanth/prverification/TMS_UAT_APP/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Shamanth/prverification/TMS_UAT_APP/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_info/2 (stdlib 5.2.3.2) gen_server.erl:1095: :gen_server.try_handle_info/3 (stdlib 5.2.3.2) gen_server.erl:1183: :gen_server.handle_msg/6 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-06-23 07:14:35.131] [DEBUG] MOUNT PlatformWeb.TerminalLive.Index Parameters: %{} Session: %{"_csrf_token" => "G9UVkBMZ4L6xggHlWHWSxl8Z", "live_socket_id" => "users_sessions:RmIr5ix6zjKQwDQUV3_w20juTLpyZdLfOJn-qLpSXiQ=", "user_token" => <<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>} [2026-06-23 07:14:35.133] [DEBUG] QUERY OK source="users_tokens" db=0.8ms queue=0.1ms idle=1552.0ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>, "session", ~U[2026-06-23 07:14:35.131954Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-06-23 07:14:35.135] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=0.1ms idle=305.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-06-23 07:14:35.139] [DEBUG] QUERY OK source="app_packages" db=1.4ms queue=0.3ms idle=102.5ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-06-23 07:14:35.142] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=0.3ms idle=4.6ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-06-23 07:14:35.145] [DEBUG] QUERY OK source="terminal_groups" db=2.3ms queue=0.2ms idle=3.1ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [41] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-06-23 07:14:35.146] [DEBUG] Replied in 14ms [2026-06-23 07:14:35.146] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-06-23 07:14:35.148] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=4.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-06-23 07:14:35.149] [DEBUG] Replied in 2ms [2026-06-23 07:14:54.567] [DEBUG] HANDLE EVENT "set_status_tab" in PlatformWeb.TerminalLive.Index Parameters: %{"status" => "online", "value" => ""} [2026-06-23 07:14:54.569] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.5ms idle=1450.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:497 [2026-06-23 07:14:54.569] [DEBUG] Replied in 2ms [2026-06-23 07:15:00.332] [INFO ] [SlaMonitorWorker] Running at hour=7 checking settlement_date=2026-06-22 [2026-06-23 07:15:00.339] [DEBUG] QUERY OK source="settlement_mis" db=0.3ms queue=0.5ms idle=43.9ms SELECT TRUE FROM `settlement_mis` AS s0 WHERE (s0.`mis_date` = ?) LIMIT 1 [~D[2026-06-22]] ↳ SettlementCore.Workers.SlaMonitorWorker.check_mis_generation_sla/1, at: lib/settlement_core/workers/sla_monitor_worker.ex:84 [2026-06-23 07:15:00.339] [WARN ] [SlaMonitorWorker] SLA BREACH: MIS not generated for 2026-06-22 [2026-06-23 07:17:36.973] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:17:36.973] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:17:35Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:17:35Z","value":"83"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:17:35Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:17:35Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:17:35Z","value":"56"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":""},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":""},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:17:35Z","value":"13.023800016380847"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:17:35Z","value":"77.63913254253566"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:17:35Z","vendor":"softpos"} [2026-06-23 07:17:36.975] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:17:35Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:17:35Z", "value" => "83"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:17:35Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:17:35Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:17:35Z", "value" => "56"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => ""}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => ""}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:17:35Z", "value" => "13.023800016380847"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:17:35Z", "value" => "77.63913254253566"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:17:35Z", "vendor" => "softpos"} [2026-06-23 07:17:36.975] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "", keys_config: "", parameter_config: ""} [2026-06-23 07:17:36.990] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:17:36.990] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:17:36.998] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms queue=0.5ms idle=934.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:17:37.003] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=1.2ms idle=389.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:17:37.010] [DEBUG] QUERY OK source="parameter_template_values" db=0.7ms queue=0.7ms idle=10.4ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:17:37.026] [DEBUG] QUERY OK source="parameter_definitions" db=0.7ms queue=0.7ms idle=21.9ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:17:37.048] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms queue=0.7ms idle=36.8ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:17:37.068] [DEBUG] QUERY OK source="pos_merchant" db=0.3ms queue=13.2ms idle=27.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:17:37.072] [DEBUG] QUERY OK db=1.4ms queue=3.0ms idle=1999.4ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:17:37.073] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:17:37.082] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms queue=1.2ms idle=32.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:17:37.096] [DEBUG] QUERY OK source="address" db=0.4ms queue=1.4ms idle=26.4ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:17:37.097] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:17:37.109] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:17:37.167] [DEBUG] QUERY OK db=15.2ms queue=7.5ms idle=53.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "27deaa9cd1ebfa340ee41e2934f495eaea5a0e60b9a5036f941122608f7ae6be", 772, 946, ~U[2026-06-23 07:17:37Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:17:37.169] [INFO ] AutoPushService: Created push log 30532 for MF919 params.zip [2026-06-23 07:17:37.179] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 772, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:17:37.181] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:17:37.190] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:17:37.201] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms queue=1.3ms idle=103.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:17:37.212] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:17:37.251] [DEBUG] QUERY OK db=34.2ms queue=0.7ms idle=57.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "7b27be5905d4cf9a13f64903e95ac9009be5221448d730605c947e0eba7e7dfd", 5634, 2334, ~U[2026-06-23 07:17:37Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:17:37.251] [INFO ] AutoPushService: Created push log 30533 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:17:37.252] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 5634, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:17:37.252] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:17:37.252] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:17:37.259] [DEBUG] QUERY OK source="config_file_versions" db=7.0ms idle=50.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:17:37.268] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:17:37.271] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms queue=0.1ms idle=17.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:17:37.271] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:17:37.408] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:17:37.409] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:17:37.410] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:17:37.410] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:17:37.410] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:17:37.412] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=1.4ms idle=150.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:17:37.428] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:17:37.467] [DEBUG] QUERY OK source="tms_terminals" db=37.6ms queue=0.5ms idle=157.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:17:37], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:17:37.489] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:17:37.505] [DEBUG] QUERY OK source="tms_terminals" db=5.3ms idle=87.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:17:37.536] [DEBUG] QUERY OK source="tms_terminals" db=25.7ms idle=41.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:17:37], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:17:37.569] [DEBUG] QUERY OK db=29.1ms queue=2.8ms idle=35.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:17:35Z", ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:17:37.583] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41370, oid: "organization_id", upload_time: "2026-06-23T07:17:35Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]} [2026-06-23 07:17:37.583] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:17:35Z", "value" => "online"} [2026-06-23 07:17:37.603] [DEBUG] QUERY OK db=16.3ms queue=1.6ms idle=50.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:17:35Z", "online", "status", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.603] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334351, itemkey: "status", value: "online", timestamp: "2026-06-23T07:17:35Z", message: "Terminal status update", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.603] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:17:37.603] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:17:35Z", "value" => "83"} [2026-06-23 07:17:37.612] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:17:37.631] [DEBUG] QUERY OK db=23.2ms queue=1.9ms idle=37.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:17:35Z", "83", "battery", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.631] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334353, itemkey: "battery", value: "83", timestamp: "2026-06-23T07:17:35Z", message: "Battery level", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.631] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:17:35Z", "value" => "online"} [2026-06-23 07:17:37.666] [DEBUG] QUERY OK db=33.8ms idle=16.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:17:35Z", "online", "network", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.666] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334354, itemkey: "network", value: "online", timestamp: "2026-06-23T07:17:35Z", message: "Network connectivity", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.666] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:17:37.666] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:17:35Z", "value" => "0"} [2026-06-23 07:17:37.666] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:17:37.690] [DEBUG] QUERY OK db=23.4ms idle=35.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:17:35Z", "0", "cpu", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.690] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334355, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:17:35Z", message: "CPU usage percentage", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.691] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:17:35Z", "value" => "56"} [2026-06-23 07:17:37.708] [DEBUG] QUERY OK db=16.7ms queue=0.2ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:17:35Z", "56", "memory", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.708] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334356, itemkey: "memory", value: "56", timestamp: "2026-06-23T07:17:35Z", message: "Memory usage percentage", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.709] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => ""} [2026-06-23 07:17:37.732] [DEBUG] QUERY OK db=22.2ms queue=0.6ms idle=19.1ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["EMV Config", "emv_config", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.732] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334357, itemkey: "emv_config", value: nil, timestamp: nil, message: "EMV Config", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.733] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => ""} [2026-06-23 07:17:37.757] [DEBUG] QUERY OK db=23.4ms queue=0.8ms idle=24.8ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["Parameter config", "parameter_config", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.758] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334358, itemkey: "parameter_config", value: nil, timestamp: nil, message: "Parameter config", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.758] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:17:37.792] [DEBUG] QUERY OK db=33.4ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.792] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334359, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.792] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:17:37.807] [DEBUG] QUERY OK db=14.2ms idle=35.2ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.808] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334360, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.808] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:17:35Z", "value" => "13.023800016380847"} [2026-06-23 07:17:37.829] [DEBUG] QUERY OK db=20.0ms idle=17.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:17:35Z", "13.023800016380847", "latitude", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.830] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334361, itemkey: "latitude", value: "13.023800016380847", timestamp: "2026-06-23T07:17:35Z", message: "Device Latitude", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.830] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:17:35Z", "value" => "77.63913254253566"} [2026-06-23 07:17:37.854] [DEBUG] QUERY OK db=23.4ms idle=23.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:17:35Z", "77.63913254253566", "longitude", 41370, ~N[2026-06-23 07:17:37], ~N[2026-06-23 07:17:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:17:37.855] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334362, itemkey: "longitude", value: "77.63913254253566", timestamp: "2026-06-23T07:17:35Z", message: "Device Longitude", status_log_id: 41370, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:17:37], updated_at: ~N[2026-06-23 07:17:37]}} [2026-06-23 07:17:37.856] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=25.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:17:37.860] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:02:16]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:17:37.864] [WARN ] Unexpected async result [2026-06-23 07:17:37.865] [WARN ] Unexpected async result [2026-06-23 07:17:47.639] [INFO ] Running offline device check... [2026-06-23 07:17:47.639] [INFO ] Starting offline device check... [2026-06-23 07:17:47.641] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=989.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:17:47.655] [INFO ] Starting scheduled rule validation [2026-06-23 07:17:47.656] [DEBUG] Validating missing assignments [2026-06-23 07:17:47.657] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.5ms queue=2.3ms idle=580.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.675] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.9ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.683] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=18.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.687] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=3.1ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.691] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=0.8ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.693] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.698] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.699] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=0.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.704] [DEBUG] QUERY OK source="terminal_group_rules" db=4.5ms queue=0.8ms idle=0.6ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-06-23 07:17:47.705] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms queue=1.2ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.706] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=1.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-06-23 07:17:47.706] [DEBUG] Re-applied 0 rules during validation [2026-06-23 07:17:47.706] [DEBUG] Validating invalid assignments [2026-06-23 07:17:47.706] [DEBUG] Validating rule consistency [2026-06-23 07:17:47.707] [DEBUG] Updating group terminal counts [2026-06-23 07:17:47.710] [DEBUG] QUERY OK source="terminal_groups" db=0.3ms queue=3.0ms idle=0.9ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-06-23 07:17:47.712] [DEBUG] QUERY OK source="terminal_groups" db=0.5ms queue=1.0ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-06-23 07:17:47.713] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.5ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.716] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.723] [DEBUG] QUERY OK source="terminal_groups" db=0.7ms queue=0.3ms idle=5.6ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-06-23 07:17:47.726] [DEBUG] QUERY OK source="terminal_group_rules" db=0.4ms queue=2.5ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-06-23 07:17:47.730] [DEBUG] QUERY OK source="terminal_group_rules" db=2.6ms queue=1.1ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-06-23 07:17:47.732] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.3ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.733] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.8ms queue=1.9ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-06-23 07:17:47.735] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.4ms queue=0.7ms idle=0.2ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-06-23 07:17:47.736] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.8ms queue=0.6ms idle=0.2ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-06-23 07:17:47.737] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-06-23 07:17:47.737] [INFO ] Rule validation completed - applied 0 fixes [2026-06-23 07:17:47.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.740] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.742] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.743] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.759] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.5ms queue=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.761] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=16.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.764] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms queue=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.766] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.770] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.795] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=23.8ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.800] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=24.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.801] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.810] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.814] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=8.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.820] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.821] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.822] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.829] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.830] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.832] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.833] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.835] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.837] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.839] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.839] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.841] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:17:47.841] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 07:17:47.841] [INFO ] Offline device check completed successfully [2026-06-23 07:18:26.295] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:18:26.295] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:18:23Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:18:23Z","value":"81"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:18:23Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:18:23Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:18:23Z","value":"71"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":""},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":""},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:18:23Z","value":"13.02405416"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:18:23Z","value":"77.64178707"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:18:23Z","vendor":"softpos"} [2026-06-23 07:18:26.295] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:18:23Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:18:23Z", "value" => "81"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:18:23Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:18:23Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:18:23Z", "value" => "71"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => ""}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => ""}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:18:23Z", "value" => "13.02405416"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:18:23Z", "value" => "77.64178707"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:18:23Z", "vendor" => "softpos"} [2026-06-23 07:18:26.295] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "", keys_config: "", parameter_config: ""} [2026-06-23 07:18:26.295] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:18:26.295] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:18:26.299] [DEBUG] QUERY OK source="parameter_templates" db=2.9ms queue=0.1ms idle=1230.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:18:26.302] [DEBUG] QUERY OK source="tms_terminals" db=2.7ms idle=479.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:18:26.303] [DEBUG] QUERY OK source="parameter_template_values" db=1.4ms idle=3.3ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:18:26.308] [DEBUG] QUERY OK source="parameter_definitions" db=1.2ms queue=2.5ms idle=2.0ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:18:26.316] [DEBUG] QUERY OK source="pos_terminal" db=7.7ms idle=4.5ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:18:26.350] [DEBUG] QUERY OK source="pos_merchant" db=33.9ms queue=0.1ms idle=8.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:18:26.353] [DEBUG] QUERY OK db=0.7ms queue=1.4ms idle=1274.8ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:18:26.353] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:18:26.356] [DEBUG] QUERY OK source="pos_terminal_data" db=2.6ms queue=0.7ms idle=37.2ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:18:26.360] [DEBUG] QUERY OK source="address" db=2.8ms queue=0.2ms idle=6.4ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:18:26.360] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:18:26.367] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:18:26.416] [DEBUG] QUERY OK db=43.1ms queue=3.6ms idle=11.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "42a0cd447ebf314032f16e3010754148e7b4e1b2408f0a0fb45ea345e28a3079", 5922, 946, ~U[2026-06-23 07:18:26Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:18:26.416] [INFO ] AutoPushService: Created push log 30535 for MF919 params.zip [2026-06-23 07:18:26.416] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 5922, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:18:26.417] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:18:26.420] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:18:26.422] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=60.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:18:26.433] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:18:26.462] [DEBUG] QUERY OK db=24.3ms queue=2.2ms idle=20.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "57d99e879f2eed5c552edc448eb02066f4bb861b39d29f752c2306c3b02a760e", 5954, 2334, ~U[2026-06-23 07:18:26Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:18:26.462] [INFO ] AutoPushService: Created push log 30537 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:18:26.463] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 5954, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:18:26.463] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:18:26.463] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:18:26.476] [DEBUG] QUERY OK source="config_file_versions" db=8.2ms idle=45.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:18:26.476] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:18:26.481] [DEBUG] QUERY OK source="tms_terminals" db=4.4ms idle=14.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:18:26.482] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:18:26.488] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:18:26.488] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:18:26.488] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:18:26.488] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:18:26.489] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:18:26.491] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=13.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:18:26.491] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:18:26.508] [DEBUG] QUERY OK source="tms_terminals" db=8.5ms queue=8.0ms idle=10.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:18:26], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:18:26.508] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:18:26.511] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms idle=17.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:18:26.540] [DEBUG] QUERY OK source="tms_terminals" db=26.4ms queue=1.6ms idle=3.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:18:26], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:18:26.579] [DEBUG] QUERY OK db=34.9ms queue=4.5ms idle=28.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:18:23Z", ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:18:26.580] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41372, oid: "organization_id", upload_time: "2026-06-23T07:18:23Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]} [2026-06-23 07:18:26.580] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:18:23Z", "value" => "online"} [2026-06-23 07:18:26.608] [DEBUG] QUERY OK db=22.6ms idle=45.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:18:23Z", "online", "status", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.608] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334364, itemkey: "status", value: "online", timestamp: "2026-06-23T07:18:23Z", message: "Terminal status update", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.608] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:18:26.608] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:18:23Z", "value" => "81"} [2026-06-23 07:18:26.608] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:18:26.650] [DEBUG] QUERY OK db=41.3ms idle=29.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:18:23Z", "81", "battery", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.650] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334366, itemkey: "battery", value: "81", timestamp: "2026-06-23T07:18:23Z", message: "Battery level", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.653] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:18:23Z", "value" => "online"} [2026-06-23 07:18:26.687] [DEBUG] QUERY OK db=32.6ms idle=45.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:18:23Z", "online", "network", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.687] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334368, itemkey: "network", value: "online", timestamp: "2026-06-23T07:18:23Z", message: "Network connectivity", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.689] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:18:26.689] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:18:23Z", "value" => "0"} [2026-06-23 07:18:26.690] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:18:26.720] [DEBUG] QUERY OK db=27.8ms idle=42.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:18:23Z", "0", "cpu", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.721] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334370, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:18:23Z", message: "CPU usage percentage", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.721] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:18:23Z", "value" => "71"} [2026-06-23 07:18:26.762] [DEBUG] QUERY OK db=39.9ms idle=35.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:18:23Z", "71", "memory", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.763] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334372, itemkey: "memory", value: "71", timestamp: "2026-06-23T07:18:23Z", message: "Memory usage percentage", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.763] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => ""} [2026-06-23 07:18:26.801] [DEBUG] QUERY OK db=37.8ms queue=0.2ms idle=42.8ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["EMV Config", "emv_config", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.801] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334374, itemkey: "emv_config", value: nil, timestamp: nil, message: "EMV Config", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.802] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => ""} [2026-06-23 07:18:26.819] [DEBUG] QUERY OK db=17.0ms idle=40.8ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["Parameter config", "parameter_config", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.819] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334376, itemkey: "parameter_config", value: nil, timestamp: nil, message: "Parameter config", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.819] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:18:26.865] [DEBUG] QUERY OK db=42.4ms idle=18.4ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.865] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334378, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.865] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:18:26.899] [DEBUG] QUERY OK db=33.7ms idle=38.3ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.899] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334380, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.900] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:18:23Z", "value" => "13.02405416"} [2026-06-23 07:18:26.923] [DEBUG] QUERY OK db=23.1ms queue=0.1ms idle=37.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:18:23Z", "13.02405416", "latitude", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.923] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334382, itemkey: "latitude", value: "13.02405416", timestamp: "2026-06-23T07:18:23Z", message: "Device Latitude", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.924] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:18:23Z", "value" => "77.64178707"} [2026-06-23 07:18:26.974] [DEBUG] QUERY OK db=39.5ms idle=35.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:18:23Z", "77.64178707", "longitude", 41372, ~N[2026-06-23 07:18:26], ~N[2026-06-23 07:18:26]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:18:26.975] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334384, itemkey: "longitude", value: "77.64178707", timestamp: "2026-06-23T07:18:23Z", message: "Device Longitude", status_log_id: 41372, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:18:26], updated_at: ~N[2026-06-23 07:18:26]}} [2026-06-23 07:18:26.976] [WARN ] Unexpected async result [2026-06-23 07:18:26.976] [WARN ] Unexpected async result [2026-06-23 07:18:26.980] [DEBUG] QUERY OK source="tms_terminals" db=4.6ms idle=52.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:18:26.981] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:02:16]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:19:44.222] [INFO ] GET /terminals [2026-06-23 07:19:44.222] [DEBUG] Processing with PlatformWeb.TerminalLive.Index.index/2 Parameters: %{} Pipelines: [:browser, :require_authenticated_user] [2026-06-23 07:19:44.226] [DEBUG] QUERY OK source="users_tokens" db=2.6ms idle=1614.4ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>, "session", ~U[2026-06-23 07:19:44.223236Z]] ↳ PlatformWeb.UserAuth.fetch_current_user/2, at: lib/platform_web/user_auth.ex:97 [2026-06-23 07:19:44.228] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms queue=0.1ms idle=1101.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-06-23 07:19:44.231] [DEBUG] QUERY OK source="app_packages" db=2.2ms idle=101.5ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-06-23 07:19:44.232] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=3.2ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-06-23 07:19:44.234] [DEBUG] QUERY OK source="terminal_groups" db=1.3ms idle=1.3ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [41] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-06-23 07:19:44.236] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=1.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-06-23 07:19:44.242] [INFO ] Sent 200 in 19ms [2026-06-23 07:19:46.302] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 53µs Transport: :longpoll Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "c3YlFBgTOm1VCGktPx4nXyUdNX4xFQ4Q4OpBsQw7aD_UXyo3rUb-Iy6J", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4026/assets/app.css", "1" => "http://demo.ctrmv.com:4026/assets/app.js"}, "vsn" => "2.0.0"} [2026-06-23 07:19:46.946] [DEBUG] MOUNT PlatformWeb.TerminalLive.Index Parameters: %{} Session: %{"_csrf_token" => "G9UVkBMZ4L6xggHlWHWSxl8Z", "live_socket_id" => "users_sessions:RmIr5ix6zjKQwDQUV3_w20juTLpyZdLfOJn-qLpSXiQ=", "user_token" => <<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>} [2026-06-23 07:19:46.949] [DEBUG] QUERY OK source="users_tokens" db=2.2ms queue=0.1ms idle=1338.2ms SELECT u1.`id`, u1.`email`, u1.`hashed_password`, u1.`confirmed_at`, u1.`role`, u1.`name`, u1.`first_name`, u1.`last_name`, u1.`data`, u1.`inserted_at`, u1.`updated_at` FROM `users_tokens` AS u0 INNER JOIN `users` AS u1 ON u1.`id` = u0.`user_id` WHERE ((u0.`token` = ?) AND (u0.`context` = ?)) AND (u0.`inserted_at` > date_add(?, INTERVAL -(60) day)) [<<70, 98, 43, 230, 44, 122, 206, 50, 144, 192, 52, 20, 87, 127, 240, 219, 72, 238, 76, 186, 114, 101, 210, 223, 56, 153, 254, 168, 186, 82, 94, 36>>, "session", ~U[2026-06-23 07:19:46.947103Z]] ↳ Phoenix.LiveView.Utils.assign_new/3, at: lib/phoenix_live_view/utils.ex:79 [2026-06-23 07:19:46.951] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1049.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:32 [2026-06-23 07:19:46.952] [DEBUG] QUERY OK source="app_packages" db=0.4ms idle=817.8ms SELECT a0.`id`, a0.`version_name`, a0.`model`, a0.`vendor`, a0.`app_version`, a0.`data_version`, a0.`system_version`, a0.`file_path`, a0.`remark`, a0.`creator_id`, a0.`inserted_at`, a0.`updated_at` FROM `app_packages` AS a0 [] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:37 [2026-06-23 07:19:46.953] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1.6ms SELECT count(t0.`id`) FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.add_terminal_counts/1, at: lib/tms_core/terminal_management/terminal_group_service.ex:346 [2026-06-23 07:19:46.956] [DEBUG] QUERY OK source="terminal_groups" db=2.0ms idle=1.3ms SELECT t0.`id`, t0.`name`, t0.`description`, t0.`group_type`, t0.`color`, t0.`icon`, t0.`is_active`, t0.`created_by`, t0.`metadata`, t0.`parent_group_id`, t0.`inserted_at`, t0.`updated_at`, CASE WHEN t0.`group_type` = 'system' AND t0.`name` = 'All Terminals' THEN ? ELSE COALESCE(s1.`count`, 0) END FROM `terminal_groups` AS t0 LEFT OUTER JOIN (SELECT st0.`group_id` AS `group_id`, count(st0.`terminal_id`) AS `count` FROM `terminal_group_memberships` AS st0 WHERE (st0.`is_active` = TRUE) GROUP BY st0.`group_id`) AS s1 ON s1.`group_id` = t0.`id` WHERE (t0.`is_active` = TRUE) [41] ↳ PlatformWeb.TerminalLive.Index.mount/3, at: lib/platform_web/live/terminal_live/index.ex:40 [2026-06-23 07:19:46.956] [DEBUG] Replied in 9ms [2026-06-23 07:19:46.956] [DEBUG] HANDLE PARAMS in PlatformWeb.TerminalLive.Index Parameters: %{} [2026-06-23 07:19:46.960] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=1.8ms idle=3.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ PlatformWeb.TerminalLive.Index.handle_params/3, at: lib/platform_web/live/terminal_live/index.ex:135 [2026-06-23 07:19:46.960] [DEBUG] Replied in 4ms [2026-06-23 07:21:49.254] [DEBUG] HANDLE EVENT "set_status_tab" in PlatformWeb.TerminalLive.Index Parameters: %{"status" => "online", "value" => ""} [2026-06-23 07:21:49.257] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms queue=1.3ms idle=1161.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_event/3, at: lib/platform_web/live/terminal_live/index.ex:497 [2026-06-23 07:21:49.260] [DEBUG] Replied in 3ms [2026-06-23 07:22:47.842] [INFO ] Running offline device check... [2026-06-23 07:22:47.842] [INFO ] Starting offline device check... [2026-06-23 07:22:47.845] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=0.2ms idle=1031.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:22:47.856] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=32.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.864] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.6ms idle=10.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.870] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=11.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms queue=0.1ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.875] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.877] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.878] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.879] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.881] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.885] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.894] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.896] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.908] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.8ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.915] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms queue=0.2ms idle=12.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.917] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.919] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.922] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=21.6ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.947] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=22.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.949] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.952] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.954] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.956] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.976] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.6ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.977] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=19.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.978] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.987] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.989] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.994] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.996] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:47.999] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.004] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.008] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.009] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.012] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.013] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.014] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.014] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:22:48.015] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 07:22:48.015] [INFO ] Offline device check completed successfully [2026-06-23 07:27:47.656] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 07:27:47.660] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms queue=0.1ms idle=1028.1ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 07:27:47.663] [DEBUG] QUERY OK source="filter_usage" db=2.0ms idle=334.7ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 07:27:47.663] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 07:27:48.016] [INFO ] Running offline device check... [2026-06-23 07:27:48.016] [INFO ] Starting offline device check... [2026-06-23 07:27:48.019] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=358.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:27:48.036] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.6ms queue=0.1ms idle=358.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.047] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.3ms idle=17.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.050] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=11.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.054] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms queue=0.4ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.055] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.057] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.060] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.9ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.070] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=8.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.076] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms queue=0.1ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.086] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.100] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.113] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.0ms idle=16.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.121] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=2.6ms idle=16.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.122] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=8.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.125] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.143] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.2ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.1ms idle=18.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.148] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.151] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.153] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.178] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=22.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.181] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=23.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.182] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=10.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.198] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.201] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.5ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.208] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.210] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.213] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.214] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.2ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.217] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.219] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.221] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.223] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.225] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:27:48.225] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 07:27:48.226] [INFO ] Offline device check completed successfully [2026-06-23 07:27:50.067] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:27:50.067] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:27:49Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:27:49Z","value":"84"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:27:49Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:27:49Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:27:49Z","value":"63"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:27:49Z","value":"13.023800016380847"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:27:49Z","value":"77.63913254253566"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:27:49Z","vendor":"softpos"} [2026-06-23 07:27:50.068] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:27:49Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:27:49Z", "value" => "84"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:27:49Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:27:49Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:27:49Z", "value" => "63"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:27:49Z", "value" => "13.023800016380847"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:27:49Z", "value" => "77.63913254253566"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:27:49Z", "vendor" => "softpos"} [2026-06-23 07:27:50.068] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:27:50.068] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:27:50.068] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:27:50.080] [DEBUG] QUERY OK source="parameter_templates" db=11.9ms idle=1736.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:27:50.088] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=6.9ms idle=743.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:27:50.090] [DEBUG] QUERY OK source="parameter_template_values" db=1.2ms idle=13.7ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:27:50.096] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=0.5ms idle=6.6ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:27:50.104] [DEBUG] QUERY OK source="pos_terminal" db=7.4ms idle=6.8ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:27:50.137] [DEBUG] QUERY OK source="pos_merchant" db=32.7ms idle=8.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:27:50.140] [DEBUG] QUERY OK db=0.6ms queue=0.5ms idle=1967.2ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:27:50.140] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:27:50.149] [DEBUG] QUERY OK source="pos_terminal_data" db=4.4ms idle=42.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:27:50.153] [DEBUG] QUERY OK source="address" db=1.0ms idle=14.3ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:27:50.153] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:27:50.158] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:27:50.192] [DEBUG] QUERY OK db=28.8ms idle=15.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "453736729a009a2f63cd26cfabf8e8be38e9b976b17eea597642f66490b2730f", 6754, 946, ~U[2026-06-23 07:27:50Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:27:50.192] [INFO ] AutoPushService: Created push log 30539 for MF919 params.zip [2026-06-23 07:27:50.195] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 6754, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:27:50.195] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:27:50.198] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:27:50.201] [DEBUG] QUERY OK source="config_file_versions" db=1.5ms queue=1.6ms idle=45.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:27:50.208] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:27:50.238] [DEBUG] QUERY OK db=27.6ms idle=19.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "05f99cf6e9c53600bba3b7abcf7468d6a8f51df2e5dd40d07edb1039fe990de4", 6818, 2334, ~U[2026-06-23 07:27:50Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:27:50.238] [INFO ] AutoPushService: Created push log 30541 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:27:50.238] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 6818, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:27:50.239] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:27:50.239] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:27:50.246] [DEBUG] QUERY OK source="config_file_versions" db=1.7ms queue=5.3ms idle=37.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:27:50.248] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:27:50.251] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms queue=1.0ms idle=10.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:27:50.252] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:27:50.257] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:27:50.264] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:27:50.264] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:27:50.274] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:27:50.274] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:27:50.281] [DEBUG] QUERY OK source="tms_terminals" db=6.5ms idle=28.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:27:50.282] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:27:50.325] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=42.5ms idle=30.9ms UPDATE `tms_terminals` SET `status` = ?, `data_version` = ?, `emv_config_version` = ?, `parameter_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "1.0.0", "1.0.0", "1.0.0", ~N[2026-06-23 07:27:50], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:27:50.332] [DEBUG] QUERY OK source="parameter_templates" db=2.4ms queue=3.7ms idle=44.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:27:50.336] [DEBUG] QUERY OK source="config_file_versions" db=3.6ms idle=7.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:27:50.336] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:27:50.345] [DEBUG] QUERY OK source="tms_terminals" db=8.7ms idle=4.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:27:50.395] [DEBUG] QUERY OK source="tms_terminals" db=6.8ms queue=42.7ms idle=9.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:27:50], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:27:50.410] [DEBUG] QUERY OK db=14.0ms idle=44.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:27:49Z", ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:27:50.410] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41373, oid: "organization_id", upload_time: "2026-06-23T07:27:49Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]} [2026-06-23 07:27:50.410] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:27:49Z", "value" => "online"} [2026-06-23 07:27:50.441] [DEBUG] QUERY OK db=30.5ms idle=15.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:27:49Z", "online", "status", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.442] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334385, itemkey: "status", value: "online", timestamp: "2026-06-23T07:27:49Z", message: "Terminal status update", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.442] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:27:50.443] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:27:49Z", "value" => "84"} [2026-06-23 07:27:50.444] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:27:50.480] [DEBUG] QUERY OK db=33.4ms queue=3.3ms idle=33.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:27:49Z", "84", "battery", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.481] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334387, itemkey: "battery", value: "84", timestamp: "2026-06-23T07:27:49Z", message: "Battery level", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.483] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:27:49Z", "value" => "online"} [2026-06-23 07:27:50.502] [DEBUG] QUERY OK db=13.1ms queue=1.5ms idle=45.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:27:49Z", "online", "network", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.503] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334389, itemkey: "network", value: "online", timestamp: "2026-06-23T07:27:49Z", message: "Network connectivity", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.504] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:27:50.506] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:27:49Z", "value" => "0"} [2026-06-23 07:27:50.506] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:27:50.539] [DEBUG] QUERY OK db=30.2ms queue=2.6ms idle=26.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:27:49Z", "0", "cpu", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.540] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334391, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:27:49Z", message: "CPU usage percentage", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.540] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:27:49Z", "value" => "63"} [2026-06-23 07:27:50.571] [DEBUG] QUERY OK db=30.2ms idle=38.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:27:49Z", "63", "memory", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.571] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334393, itemkey: "memory", value: "63", timestamp: "2026-06-23T07:27:49Z", message: "Memory usage percentage", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.571] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:27:50.610] [DEBUG] QUERY OK db=25.1ms queue=10.0ms idle=35.4ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.610] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334395, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.610] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:27:50.644] [DEBUG] QUERY OK db=27.1ms queue=5.6ms idle=39.9ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.644] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334396, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.644] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:27:50.681] [DEBUG] QUERY OK db=35.9ms idle=34.8ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.681] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334398, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.681] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:27:50.706] [DEBUG] QUERY OK db=17.2ms queue=0.1ms idle=44.8ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.706] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334399, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.710] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:27:49Z", "value" => "13.023800016380847"} [2026-06-23 07:27:50.740] [DEBUG] QUERY OK db=28.9ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:27:49Z", "13.023800016380847", "latitude", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.740] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334401, itemkey: "latitude", value: "13.023800016380847", timestamp: "2026-06-23T07:27:49Z", message: "Device Latitude", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.740] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:27:49Z", "value" => "77.63913254253566"} [2026-06-23 07:27:50.770] [DEBUG] QUERY OK db=29.6ms idle=34.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:27:49Z", "77.63913254253566", "longitude", 41373, ~N[2026-06-23 07:27:50], ~N[2026-06-23 07:27:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:27:50.770] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334403, itemkey: "longitude", value: "77.63913254253566", timestamp: "2026-06-23T07:27:49Z", message: "Device Longitude", status_log_id: 41373, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:27:50], updated_at: ~N[2026-06-23 07:27:50]}} [2026-06-23 07:27:50.771] [WARN ] Unexpected async result [2026-06-23 07:27:50.771] [WARN ] Unexpected async result [2026-06-23 07:27:50.782] [DEBUG] QUERY OK source="tms_terminals" db=3.6ms queue=7.8ms idle=31.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:27:50.797] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:02:16]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:28:43.674] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:28:43.674] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:38:47Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:38:47Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:38:47Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:38:47Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:38:47Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:38:47Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:38:47Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:38:47Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:38:47Z","vendor":"MoreFun"} [2026-06-23 07:28:43.678] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:38:47Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:38:47Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:38:47Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:38:47Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:38:47Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:38:47Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:38:47Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:38:47Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:38:47Z", "vendor" => "MoreFun"} [2026-06-23 07:28:43.678] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:28:43.678] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:28:43.683] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:28:43.685] [DEBUG] QUERY OK source="parameter_templates" db=0.9ms idle=970.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:28:43.691] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms queue=3.1ms idle=499.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:28:43.694] [DEBUG] QUERY OK source="parameter_template_values" db=2.6ms idle=7.0ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:28:43.703] [DEBUG] QUERY OK source="parameter_definitions" db=2.0ms queue=2.6ms idle=6.7ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:28:43.709] [DEBUG] QUERY OK source="pos_terminal" db=1.6ms idle=11.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:28:43.743] [DEBUG] QUERY OK source="pos_merchant" db=32.8ms queue=0.9ms idle=6.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:28:43.747] [DEBUG] QUERY OK db=1.8ms queue=1.8ms idle=556.5ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:28:43.748] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:28:43.758] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms queue=3.8ms idle=37.4ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:28:43.763] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:28:43.777] [DEBUG] QUERY OK source="address" db=2.3ms queue=3.4ms idle=27.4ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:28:43.778] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:28:43.782] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:28:43.868] [DEBUG] QUERY OK db=84.8ms queue=0.3ms idle=24.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "b518637d2f398ac5368461c64e929091ef1c07dffc80ec75321b1c6cd85823a5", 6914, 927, ~U[2026-06-23 07:28:43Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:28:43], ~N[2026-06-23 07:28:43]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:28:43.868] [INFO ] AutoPushService: Created push log 30543 for MF919 params.zip [2026-06-23 07:28:43.868] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 6914, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:28:43.868] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:28:43.868] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:28:43.877] [DEBUG] QUERY OK source="config_file_versions" db=8.7ms idle=92.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:28:43.889] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:28:43.906] [DEBUG] QUERY OK db=12.7ms idle=25.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "b39c6c2836c797c0fe7c0f437ef0e2bed861c72cb055cbfae518d65991438e39", 6978, 17947, ~U[2026-06-23 07:28:43Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:28:43], ~N[2026-06-23 07:28:43]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:28:43.907] [INFO ] AutoPushService: Created push log 30545 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:28:43.908] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 6978, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:28:43.911] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:28:43.914] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:28:43.924] [DEBUG] QUERY OK source="config_file_versions" db=10.2ms idle=36.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:28:43.924] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:28:43.932] [DEBUG] QUERY OK source="tms_terminals" db=7.5ms idle=18.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:28:43.933] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:28:43.946] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:28:43.946] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:28:43.947] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:28:43.951] [DEBUG] QUERY OK source="config_file_versions" db=4.4ms idle=22.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:28:43.955] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:28:43.955] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:28:43.957] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=23.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:28:43.960] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:28:43.962] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms queue=0.1ms idle=9.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:28:43.964] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms queue=0.4ms idle=5.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:28:43.964] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:28:43.968] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=2.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:28:43.985] [DEBUG] QUERY OK source="tms_terminals" db=14.3ms decode=2.3ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:28:43], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:28:44.013] [DEBUG] QUERY OK db=27.7ms queue=0.1ms idle=17.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:38:47Z", ~N[2026-06-23 07:28:43], ~N[2026-06-23 07:28:43]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:28:44.013] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41375, oid: "organization_id", upload_time: "2026-06-22T22:38:47Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:43], updated_at: ~N[2026-06-23 07:28:43]} [2026-06-23 07:28:44.014] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:38:47Z", "value" => "online"} [2026-06-23 07:28:44.049] [DEBUG] QUERY OK db=35.2ms idle=31.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:38:47Z", "online", "status", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334407, itemkey: "status", value: "online", timestamp: "2026-06-22T22:38:47Z", message: "Terminal status update", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.052] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:28:44.074] [DEBUG] QUERY OK source="tms_terminals" db=16.1ms idle=44.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:28:44], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:28:44.074] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:38:47Z", "value" => "52"} [2026-06-23 07:28:44.074] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:28:44.099] [DEBUG] QUERY OK db=23.6ms queue=0.3ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:38:47Z", "52", "battery", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.100] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334410, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:38:47Z", message: "Battery level", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.100] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:38:47Z", "value" => "online"} [2026-06-23 07:28:44.144] [DEBUG] QUERY OK db=29.9ms queue=13.5ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:38:47Z", "online", "network", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.145] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334412, itemkey: "network", value: "online", timestamp: "2026-06-22T22:38:47Z", message: "Network connectivity", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.145] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:28:44.149] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=1.3ms idle=46.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:28:44], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:28:44.149] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:38:47Z", "value" => "0"} [2026-06-23 07:28:44.150] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:28:44.169] [DEBUG] QUERY OK db=16.1ms queue=0.2ms idle=8.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:38:47Z", "0", "cpu", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.173] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334414, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:38:47Z", message: "CPU usage percentage", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.173] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:38:47Z", "value" => "1.0.0"} [2026-06-23 07:28:44.236] [DEBUG] QUERY OK db=56.7ms queue=1.1ms idle=29.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:38:47Z", "1.0.0", "parameter_config", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.238] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334416, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:38:47Z", message: "Current parameters version", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.247] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:38:47Z", "value" => "1.0.1"} [2026-06-23 07:28:44.262] [DEBUG] QUERY OK db=14.0ms idle=78.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:38:47Z", "1.0.1", "emv_config", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.262] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334418, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:38:47Z", message: "Current EMV config version", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.262] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:38:47Z", "value" => ""} [2026-06-23 07:28:44.320] [DEBUG] QUERY OK db=55.4ms queue=1.6ms idle=26.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:38:47Z", "keys_config", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.321] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334419, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:38:47Z", message: "Current keys config version", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.321] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:38:47Z", "value" => ""} [2026-06-23 07:28:44.463] [DEBUG] QUERY OK db=97.4ms queue=42.6ms idle=61.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:38:47Z", "application", 41375, ~N[2026-06-23 07:28:44], ~N[2026-06-23 07:28:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:44.463] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334422, itemkey: "application", value: nil, timestamp: "2026-06-22T22:38:47Z", message: "Current application version", status_log_id: 41375, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:44], updated_at: ~N[2026-06-23 07:28:44]}} [2026-06-23 07:28:44.473] [DEBUG] QUERY OK source="tms_terminals" db=9.6ms idle=144.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:28:44], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:28:44.482] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=1.1ms idle=15.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:28:44.479] [WARN ] Unexpected async result [2026-06-23 07:28:44.483] [WARN ] Unexpected async result [2026-06-23 07:28:44.493] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:28:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:28:59.041] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:28:59.041] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:02Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:02Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:02Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:02Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:02Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:02Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:02Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:02Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:02Z","vendor":"MoreFun"} [2026-06-23 07:28:59.041] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:02Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:02Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:02Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:02Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:02Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:02Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:02Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:02Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:02Z", "vendor" => "MoreFun"} [2026-06-23 07:28:59.041] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:28:59.041] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:28:59.042] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:28:59.046] [DEBUG] QUERY OK source="parameter_templates" db=4.2ms idle=847.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:28:59.050] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms queue=0.1ms idle=237.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:28:59.057] [DEBUG] QUERY OK source="parameter_template_values" db=6.3ms idle=4.7ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:28:59.065] [DEBUG] QUERY OK source="parameter_definitions" db=3.0ms queue=4.1ms idle=7.1ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:28:59.067] [DEBUG] QUERY OK source="pos_terminal" db=1.1ms idle=8.9ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:28:59.106] [DEBUG] QUERY OK source="pos_merchant" db=38.0ms idle=2.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:28:59.115] [DEBUG] QUERY OK db=0.6ms queue=8.7ms idle=1919.4ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:28:59.115] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:28:59.125] [DEBUG] QUERY OK source="pos_terminal_data" db=9.4ms idle=48.3ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:28:59.125] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:28:59.130] [DEBUG] QUERY OK source="address" db=3.9ms idle=19.9ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:28:59.130] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:28:59.136] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:28:59.231] [DEBUG] QUERY OK db=90.8ms queue=0.1ms idle=14.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "43aea911dadf3cf9a82d342c32abd29a966e99bbe7f82e0b3b1cda4134a102c3", 7202, 927, ~U[2026-06-23 07:28:59Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:28:59.232] [INFO ] AutoPushService: Created push log 30546 for MF919 params.zip [2026-06-23 07:28:59.233] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 7202, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:28:59.233] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:28:59.233] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:28:59.236] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=104.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:28:59.246] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:28:59.277] [DEBUG] QUERY OK db=27.1ms queue=0.4ms idle=19.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "9832e380a6b03e059326372681597a77a8b2049773a323b49b9551e0efe34acf", 7266, 17947, ~U[2026-06-23 07:28:59Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:28:59.280] [INFO ] AutoPushService: Created push log 30548 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:28:59.281] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 7266, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:28:59.281] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:28:59.281] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:28:59.287] [DEBUG] QUERY OK source="config_file_versions" db=1.5ms queue=3.4ms idle=46.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:28:59.287] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:28:59.295] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=14.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:28:59.297] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:28:59.299] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:28:59.299] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:28:59.300] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:28:59.301] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=13.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:28:59.304] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:28:59.305] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:28:59.310] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=11.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:28:59.310] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:28:59.345] [DEBUG] QUERY OK source="tms_terminals" db=29.0ms queue=1.4ms idle=13.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:28:59], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:28:59.351] [DEBUG] QUERY OK source="parameter_templates" db=4.0ms idle=37.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:28:59.363] [DEBUG] QUERY OK source="config_file_versions" db=6.7ms idle=6.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:28:59.363] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:28:59.372] [DEBUG] QUERY OK source="tms_terminals" db=9.4ms queue=0.1ms idle=12.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:28:59.381] [DEBUG] QUERY OK source="tms_terminals" db=7.5ms queue=0.1ms idle=14.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:28:59], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:28:59.408] [DEBUG] QUERY OK db=26.3ms idle=8.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:02Z", ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:28:59.408] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41377, oid: "organization_id", upload_time: "2026-06-22T22:39:02Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]} [2026-06-23 07:28:59.408] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:02Z", "value" => "online"} [2026-06-23 07:28:59.441] [DEBUG] QUERY OK db=30.0ms queue=0.7ms idle=29.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:02Z", "online", "status", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.441] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334423, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:02Z", message: "Terminal status update", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.441] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:28:59.441] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:28:59.441] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:02Z", "value" => "52"} [2026-06-23 07:28:59.484] [DEBUG] QUERY OK db=32.1ms queue=1.5ms idle=42.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:02Z", "52", "battery", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.484] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334426, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:02Z", message: "Battery level", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.485] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:02Z", "value" => "online"} [2026-06-23 07:28:59.514] [DEBUG] QUERY OK db=25.9ms queue=0.3ms idle=46.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:02Z", "online", "network", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.515] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334428, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:02Z", message: "Network connectivity", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.515] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:28:59.519] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:02Z", "value" => "0"} [2026-06-23 07:28:59.519] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:28:59.537] [DEBUG] QUERY OK db=16.5ms idle=35.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:02Z", "0", "cpu", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.537] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334430, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:02Z", message: "CPU usage percentage", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.537] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:02Z", "value" => "1.0.0"} [2026-06-23 07:28:59.572] [DEBUG] QUERY OK db=31.2ms queue=2.5ms idle=24.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:02Z", "1.0.0", "parameter_config", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.572] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334431, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:02Z", message: "Current parameters version", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.572] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:02Z", "value" => "1.0.1"} [2026-06-23 07:28:59.601] [DEBUG] QUERY OK db=25.8ms queue=2.5ms idle=36.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:02Z", "1.0.1", "emv_config", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.601] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334433, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:02Z", message: "Current EMV config version", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.601] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:02Z", "value" => ""} [2026-06-23 07:28:59.635] [DEBUG] QUERY OK db=32.7ms idle=29.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:02Z", "keys_config", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.635] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334435, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:02Z", message: "Current keys config version", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.635] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:02Z", "value" => ""} [2026-06-23 07:28:59.668] [DEBUG] QUERY OK db=31.8ms idle=36.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:02Z", "application", 41377, ~N[2026-06-23 07:28:59], ~N[2026-06-23 07:28:59]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:28:59.668] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334437, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:02Z", message: "Current application version", status_log_id: 41377, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:28:59], updated_at: ~N[2026-06-23 07:28:59]}} [2026-06-23 07:28:59.672] [DEBUG] QUERY OK source="tms_terminals" db=3.5ms queue=0.4ms idle=34.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:28:59.668] [WARN ] Unexpected async result [2026-06-23 07:28:59.674] [WARN ] Unexpected async result [2026-06-23 07:28:59.678] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:28:59]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:13.174] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:13.174] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:16Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:16Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:16Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:16Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:16Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:16Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:16Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:16Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:16Z","vendor":"MoreFun"} [2026-06-23 07:29:13.176] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:16Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:16Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:16Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:16Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:16Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:16Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:16Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:16Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:16Z", "vendor" => "MoreFun"} [2026-06-23 07:29:13.176] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:13.176] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:13.177] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:13.182] [DEBUG] QUERY OK source="parameter_templates" db=5.4ms idle=1209.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:13.183] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=200.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:13.186] [DEBUG] QUERY OK source="parameter_template_values" db=2.4ms idle=1.2ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:13.200] [DEBUG] QUERY OK source="parameter_definitions" db=6.4ms queue=0.5ms idle=9.5ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:13.203] [DEBUG] QUERY OK source="pos_terminal" db=2.4ms idle=14.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:13.240] [DEBUG] QUERY OK source="pos_merchant" db=36.8ms idle=3.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:13.250] [DEBUG] QUERY OK db=4.2ms queue=5.7ms idle=1036.6ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:13.250] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:13.253] [DEBUG] QUERY OK source="pos_terminal_data" db=1.9ms idle=47.9ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:13.253] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:13.265] [DEBUG] QUERY OK source="address" db=6.8ms queue=2.2ms idle=16.4ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:13.266] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:13.268] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:13.338] [DEBUG] QUERY OK db=57.6ms idle=27.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "f45c44a12cebd99a218ed42cc5fbd4e0def04ef2f6510a4e2c95e8e2a4dcbeb4", 1507, 927, ~U[2026-06-23 07:29:13Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:13.339] [INFO ] AutoPushService: Created push log 30550 for MF919 params.zip [2026-06-23 07:29:13.339] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 1507, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:13.342] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:13.344] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:13.350] [DEBUG] QUERY OK source="config_file_versions" db=5.4ms idle=79.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:13.378] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:13.418] [DEBUG] QUERY OK db=31.4ms idle=48.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "23811dc4b0a63647711ac1a80b6b95e175852cece724b08f6c028e71043ef3d3", 1571, 17947, ~U[2026-06-23 07:29:13Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:13.418] [INFO ] AutoPushService: Created push log 30552 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:13.419] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1571, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:13.419] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:13.420] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:13.426] [DEBUG] QUERY OK source="config_file_versions" db=5.6ms idle=70.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:13.426] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:13.439] [DEBUG] QUERY OK source="tms_terminals" db=13.1ms idle=8.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:13.440] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:13.473] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:13.478] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:13.479] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:13.488] [DEBUG] QUERY OK source="config_file_versions" db=9.3ms idle=52.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:13.490] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:13.490] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:13.506] [DEBUG] QUERY OK source="tms_terminals" db=15.7ms idle=50.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:13.507] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:13.548] [DEBUG] QUERY OK source="tms_terminals" db=41.3ms idle=18.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:29:13], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:29:13.553] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms queue=0.3ms idle=45.5ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:13.561] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=10.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:13.568] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:13.578] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=23.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:13.608] [DEBUG] QUERY OK source="tms_terminals" db=29.8ms idle=17.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:13], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:13.645] [DEBUG] QUERY OK db=37.0ms idle=30.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:16Z", ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:13.646] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41379, oid: "organization_id", upload_time: "2026-06-22T22:39:16Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]} [2026-06-23 07:29:13.646] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:16Z", "value" => "online"} [2026-06-23 07:29:13.682] [DEBUG] QUERY OK db=36.1ms idle=38.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:16Z", "online", "status", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.683] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334439, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:16Z", message: "Terminal status update", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.683] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:13.683] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:13.683] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:16Z", "value" => "52"} [2026-06-23 07:29:13.711] [DEBUG] QUERY OK db=20.5ms idle=44.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:16Z", "52", "battery", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.711] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334441, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:16Z", message: "Battery level", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.711] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:16Z", "value" => "online"} [2026-06-23 07:29:13.767] [DEBUG] QUERY OK db=31.1ms idle=52.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:16Z", "online", "network", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.767] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334443, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:16Z", message: "Network connectivity", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.784] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:13.785] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:16Z", "value" => "0"} [2026-06-23 07:29:13.795] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:13.815] [DEBUG] QUERY OK db=28.7ms queue=1.0ms idle=75.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:16Z", "0", "cpu", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.816] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334446, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:16Z", message: "CPU usage percentage", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.816] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:16Z", "value" => "1.0.0"} [2026-06-23 07:29:13.841] [DEBUG] QUERY OK db=24.0ms idle=49.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:16Z", "1.0.0", "parameter_config", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.841] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334447, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:16Z", message: "Current parameters version", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.841] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:16Z", "value" => "1.0.1"} [2026-06-23 07:29:13.884] [DEBUG] QUERY OK db=34.7ms idle=33.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:16Z", "1.0.1", "emv_config", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.884] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334449, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:16Z", message: "Current EMV config version", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.884] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:16Z", "value" => ""} [2026-06-23 07:29:13.905] [DEBUG] QUERY OK db=20.0ms idle=43.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:16Z", "keys_config", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.905] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334451, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:16Z", message: "Current keys config version", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.905] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:16Z", "value" => ""} [2026-06-23 07:29:13.951] [DEBUG] QUERY OK db=45.2ms idle=22.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:16Z", "application", 41379, ~N[2026-06-23 07:29:13], ~N[2026-06-23 07:29:13]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:13.951] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334453, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:16Z", message: "Current application version", status_log_id: 41379, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:13], updated_at: ~N[2026-06-23 07:29:13]}} [2026-06-23 07:29:13.952] [WARN ] Unexpected async result [2026-06-23 07:29:13.952] [WARN ] Unexpected async result [2026-06-23 07:29:13.958] [DEBUG] QUERY OK source="tms_terminals" db=6.0ms queue=0.2ms idle=47.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:13.959] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:13]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:15.552] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:15.552] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:19Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:19Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:19Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:19Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:19Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:19Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:19Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:19Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:19Z","vendor":"MoreFun"} [2026-06-23 07:29:15.552] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:19Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:19Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:19Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:19Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:19Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:19Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:19Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:19Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:19Z", "vendor" => "MoreFun"} [2026-06-23 07:29:15.552] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:15.552] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:15.569] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:15.583] [DEBUG] QUERY OK source="parameter_templates" db=5.5ms queue=5.1ms idle=565.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:15.594] [DEBUG] QUERY OK source="tms_terminals" db=9.8ms idle=374.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:15.609] [DEBUG] QUERY OK source="parameter_template_values" db=6.5ms queue=4.4ms idle=14.9ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:15.623] [DEBUG] QUERY OK source="parameter_definitions" db=11.9ms queue=1.0ms idle=16.1ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:15.626] [DEBUG] QUERY OK source="pos_terminal" db=2.0ms idle=14.2ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:15.664] [DEBUG] QUERY OK source="pos_merchant" db=38.4ms idle=3.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:15.671] [DEBUG] QUERY OK db=1.7ms queue=4.5ms idle=455.0ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:15.674] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:15.678] [DEBUG] QUERY OK source="pos_terminal_data" db=3.5ms idle=49.0ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:15.678] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:15.682] [DEBUG] QUERY OK source="address" db=3.1ms idle=14.2ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:15.682] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:15.691] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:15.731] [DEBUG] QUERY OK db=38.0ms idle=14.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "d2e0c2ddd55fae4a5880fb01566d69657a7f7b88beff292ac3a216075fc3bf28", 964, 927, ~U[2026-06-23 07:29:15Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:15], ~N[2026-06-23 07:29:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:15.732] [INFO ] AutoPushService: Created push log 30554 for MF919 params.zip [2026-06-23 07:29:15.732] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 964, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:15.732] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:15.732] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:15.736] [DEBUG] QUERY OK source="config_file_versions" db=4.0ms idle=50.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:15.776] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:15.804] [DEBUG] QUERY OK db=25.7ms idle=46.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "8eb2928cc49a8549dd21509207d3abb07fa6b8f65ce1e84031382378e83c6790", 1028, 17947, ~U[2026-06-23 07:29:15Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:15], ~N[2026-06-23 07:29:15]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:15.806] [INFO ] AutoPushService: Created push log 30556 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:15.806] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1028, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:15.806] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:15.810] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:15.816] [DEBUG] QUERY OK source="config_file_versions" db=4.5ms queue=1.1ms idle=74.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:15.816] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:15.829] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=4.0ms idle=20.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:15.829] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:15.852] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:15.852] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:15.852] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:15.865] [DEBUG] QUERY OK source="config_file_versions" db=12.3ms queue=0.1ms idle=36.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:15.867] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:15.868] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:15.888] [DEBUG] QUERY OK source="tms_terminals" db=20.1ms idle=38.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:15.888] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:15.926] [DEBUG] QUERY OK source="tms_terminals" db=17.4ms queue=7.6ms idle=32.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:29:15], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:29:15.927] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms queue=0.2ms idle=38.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:15.931] [DEBUG] QUERY OK source="config_file_versions" db=4.0ms idle=4.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:15.938] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:15.946] [DEBUG] QUERY OK source="tms_terminals" db=8.3ms idle=11.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:15.952] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=1.0ms idle=17.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:15], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:16.000] [DEBUG] QUERY OK db=47.5ms idle=5.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:19Z", ~N[2026-06-23 07:29:15], ~N[2026-06-23 07:29:15]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:16.000] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41382, oid: "organization_id", upload_time: "2026-06-22T22:39:19Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:15], updated_at: ~N[2026-06-23 07:29:15]} [2026-06-23 07:29:16.000] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:19Z", "value" => "online"} [2026-06-23 07:29:16.027] [DEBUG] QUERY OK db=26.5ms idle=48.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:19Z", "online", "status", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.027] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334456, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:19Z", message: "Terminal status update", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.027] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:16.028] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:16.028] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:19Z", "value" => "52"} [2026-06-23 07:29:16.068] [DEBUG] QUERY OK db=37.6ms queue=2.2ms idle=14.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:19Z", "52", "battery", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.069] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334458, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:19Z", message: "Battery level", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.069] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:19Z", "value" => "online"} [2026-06-23 07:29:16.091] [DEBUG] QUERY OK db=20.7ms idle=42.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:19Z", "online", "network", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.092] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334460, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:19Z", message: "Network connectivity", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.095] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:16.098] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:16.099] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:19Z", "value" => "0"} [2026-06-23 07:29:16.119] [DEBUG] QUERY OK db=19.7ms queue=0.1ms idle=30.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:19Z", "0", "cpu", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.121] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334462, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:19Z", message: "CPU usage percentage", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.121] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:19Z", "value" => "1.0.0"} [2026-06-23 07:29:16.155] [DEBUG] QUERY OK db=33.8ms idle=31.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:19Z", "1.0.0", "parameter_config", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.156] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334464, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:19Z", message: "Current parameters version", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.156] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:19Z", "value" => "1.0.1"} [2026-06-23 07:29:16.180] [DEBUG] QUERY OK db=19.8ms idle=40.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:19Z", "1.0.1", "emv_config", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.180] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334466, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:19Z", message: "Current EMV config version", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.181] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:19Z", "value" => ""} [2026-06-23 07:29:16.210] [DEBUG] QUERY OK db=28.2ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:19Z", "keys_config", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.210] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334468, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:19Z", message: "Current keys config version", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.212] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:19Z", "value" => ""} [2026-06-23 07:29:16.252] [DEBUG] QUERY OK db=37.4ms queue=0.2ms idle=34.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:19Z", "application", 41382, ~N[2026-06-23 07:29:16], ~N[2026-06-23 07:29:16]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:16.270] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334470, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:19Z", message: "Current application version", status_log_id: 41382, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:16], updated_at: ~N[2026-06-23 07:29:16]}} [2026-06-23 07:29:16.271] [WARN ] Unexpected async result [2026-06-23 07:29:16.271] [WARN ] Unexpected async result [2026-06-23 07:29:16.273] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=0.2ms idle=61.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:16.297] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:15]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:18.304] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:18.304] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:21Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:21Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:21Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:21Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:21Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:21Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:21Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:21Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:21Z","vendor":"MoreFun"} [2026-06-23 07:29:18.305] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:21Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:21Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:21Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:21Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:21Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:21Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:21Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:21Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:21Z", "vendor" => "MoreFun"} [2026-06-23 07:29:18.305] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:18.305] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:18.306] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:18.309] [DEBUG] QUERY OK source="parameter_templates" db=2.5ms idle=283.4ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:18.313] [DEBUG] QUERY OK source="tms_terminals" db=3.2ms idle=101.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:18.315] [DEBUG] QUERY OK source="parameter_template_values" db=0.8ms idle=5.2ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:18.323] [DEBUG] QUERY OK source="parameter_definitions" db=4.7ms queue=2.1ms idle=3.0ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:18.325] [DEBUG] QUERY OK source="pos_terminal" db=1.8ms idle=7.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:18.367] [DEBUG] QUERY OK source="pos_merchant" db=41.9ms idle=2.7ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:18.372] [DEBUG] QUERY OK db=1.6ms queue=2.8ms idle=1158.8ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:18.372] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:18.376] [DEBUG] QUERY OK source="pos_terminal_data" db=3.5ms idle=47.3ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:18.376] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:18.377] [DEBUG] QUERY OK source="address" db=0.3ms idle=8.9ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:18.377] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:18.380] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:18.413] [DEBUG] QUERY OK db=31.8ms idle=5.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "6a7247a2991277ced10584c2eda3b99a24c3f1ebd3e7a344e7b9e997fdb4608f", 1635, 927, ~U[2026-06-23 07:29:18Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:18.421] [INFO ] AutoPushService: Created push log 30558 for MF919 params.zip [2026-06-23 07:29:18.421] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 1635, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:18.421] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:18.422] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:18.437] [DEBUG] QUERY OK source="config_file_versions" db=3.5ms queue=0.5ms idle=55.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:18.447] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:18.477] [DEBUG] QUERY OK db=27.0ms idle=36.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "91b9259b483163c6da788d782851da77b96d5f6c846cf7afaf1b843d08f613bc", 1188, 17947, ~U[2026-06-23 07:29:18Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:18.477] [INFO ] AutoPushService: Created push log 30561 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:18.477] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1188, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:18.478] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:18.478] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:18.483] [DEBUG] QUERY OK source="config_file_versions" db=4.6ms idle=41.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:18.486] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:18.491] [DEBUG] QUERY OK source="tms_terminals" db=4.8ms idle=9.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:18.492] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:18.499] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:18.499] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:18.500] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:18.503] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms queue=0.3ms idle=18.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:18.503] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:18.503] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:18.512] [DEBUG] QUERY OK source="tms_terminals" db=3.3ms idle=12.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:18.515] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:18.518] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=12.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:29:18], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:29:18.525] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms idle=17.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:18.527] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms queue=0.9ms idle=7.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:18.533] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:18.540] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=1.1ms idle=9.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:18.561] [DEBUG] QUERY OK source="tms_terminals" db=18.7ms idle=14.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:18], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:18.586] [DEBUG] QUERY OK db=24.9ms idle=23.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:21Z", ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:18.587] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41383, oid: "organization_id", upload_time: "2026-06-22T22:39:21Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]} [2026-06-23 07:29:18.587] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:21Z", "value" => "online"} [2026-06-23 07:29:18.617] [DEBUG] QUERY OK db=28.3ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:21Z", "online", "status", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.617] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334471, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:21Z", message: "Terminal status update", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.618] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:18.618] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:21Z", "value" => "52"} [2026-06-23 07:29:18.618] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:18.639] [DEBUG] QUERY OK db=20.4ms queue=0.1ms idle=31.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:21Z", "52", "battery", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.647] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334473, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:21Z", message: "Battery level", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.647] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:21Z", "value" => "online"} [2026-06-23 07:29:18.690] [DEBUG] QUERY OK db=39.7ms idle=34.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:21Z", "online", "network", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.691] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334475, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:21Z", message: "Network connectivity", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.691] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:18.691] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:18.691] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:21Z", "value" => "0"} [2026-06-23 07:29:18.720] [DEBUG] QUERY OK db=25.4ms queue=0.1ms idle=53.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:21Z", "0", "cpu", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.720] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334477, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:21Z", message: "CPU usage percentage", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.720] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:21Z", "value" => "1.0.0"} [2026-06-23 07:29:18.761] [DEBUG] QUERY OK db=36.9ms queue=1.5ms idle=32.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:21Z", "1.0.0", "parameter_config", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.761] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334479, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:21Z", message: "Current parameters version", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.761] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:21Z", "value" => "1.0.1"} [2026-06-23 07:29:18.784] [DEBUG] QUERY OK db=20.6ms idle=46.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:21Z", "1.0.1", "emv_config", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.784] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334481, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:21Z", message: "Current EMV config version", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.784] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:21Z", "value" => ""} [2026-06-23 07:29:18.826] [DEBUG] QUERY OK db=38.2ms idle=27.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:21Z", "keys_config", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.827] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334483, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:21Z", message: "Current keys config version", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.827] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:21Z", "value" => ""} [2026-06-23 07:29:18.863] [DEBUG] QUERY OK db=32.7ms queue=1.4ms idle=43.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:21Z", "application", 41383, ~N[2026-06-23 07:29:18], ~N[2026-06-23 07:29:18]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:18.868] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334485, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:21Z", message: "Current application version", status_log_id: 41383, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:18], updated_at: ~N[2026-06-23 07:29:18]}} [2026-06-23 07:29:18.868] [WARN ] Unexpected async result [2026-06-23 07:29:18.868] [WARN ] Unexpected async result [2026-06-23 07:29:18.871] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms queue=0.2ms idle=42.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:18.878] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:18]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:22.512] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:22.512] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:26Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:26Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:26Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:26Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:26Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:26Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:26Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:26Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:26Z","vendor":"MoreFun"} [2026-06-23 07:29:22.512] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:26Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:26Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:26Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:26Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:26Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:26Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:26Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:26Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:26Z", "vendor" => "MoreFun"} [2026-06-23 07:29:22.512] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:22.512] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:22.512] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:22.516] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms queue=1.8ms idle=1299.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:22.520] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=466.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:22.521] [DEBUG] QUERY OK source="parameter_template_values" db=0.7ms idle=3.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:22.535] [DEBUG] QUERY OK source="parameter_definitions" db=6.6ms queue=4.2ms idle=4.3ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:22.542] [DEBUG] QUERY OK source="pos_terminal" db=1.1ms idle=19.5ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:22.573] [DEBUG] QUERY OK source="pos_merchant" db=31.3ms idle=10.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:22.577] [DEBUG] QUERY OK db=1.4ms queue=1.9ms idle=360.7ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:22.577] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:22.582] [DEBUG] QUERY OK source="pos_terminal_data" db=2.8ms idle=37.9ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:22.582] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:22.584] [DEBUG] QUERY OK source="address" db=1.1ms idle=9.5ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:22.586] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:22.594] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:22.665] [DEBUG] QUERY OK db=68.6ms idle=13.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "2d3ee6084fed3aef4970d2f36e257acbe70d7eeadb20de85a3257937e408c71a", 7554, 927, ~U[2026-06-23 07:29:22Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:22.665] [INFO ] AutoPushService: Created push log 30563 for MF919 params.zip [2026-06-23 07:29:22.669] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 7554, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:22.671] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:22.671] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:22.673] [DEBUG] QUERY OK source="config_file_versions" db=2.0ms idle=87.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:22.683] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:22.711] [DEBUG] QUERY OK db=21.8ms idle=20.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "77215b740ce09d500d108c0ccaa8b694da9105abce72a84109a1fbca4f4e8292", 1284, 17947, ~U[2026-06-23 07:29:22Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:22.711] [INFO ] AutoPushService: Created push log 30565 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:22.711] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1284, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:22.712] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:22.712] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:22.717] [DEBUG] QUERY OK source="config_file_versions" db=4.5ms idle=39.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:22.723] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:22.730] [DEBUG] QUERY OK source="tms_terminals" db=5.0ms queue=1.4ms idle=16.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:22.730] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:22.740] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:22.740] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:22.740] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:22.752] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms queue=0.1ms idle=32.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:22.755] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:22.755] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:22.761] [DEBUG] QUERY OK source="tms_terminals" db=6.2ms idle=24.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:22.764] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:22.767] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=14.0ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:22.772] [DEBUG] QUERY OK source="config_file_versions" db=2.1ms idle=6.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:22.772] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:22.779] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms queue=4.9ms idle=5.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:22.803] [DEBUG] QUERY OK source="tms_terminals" db=22.2ms queue=1.0ms idle=10.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:22], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:22.847] [DEBUG] QUERY OK db=43.6ms idle=24.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:26Z", ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:22.848] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41385, oid: "organization_id", upload_time: "2026-06-22T22:39:26Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:22], updated_at: ~N[2026-06-23 07:29:22]} [2026-06-23 07:29:22.848] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:26Z", "value" => "online"} [2026-06-23 07:29:22.870] [DEBUG] QUERY OK db=20.4ms queue=0.2ms idle=44.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:26Z", "online", "status", 41385, ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:22.870] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334487, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:26Z", message: "Terminal status update", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:22], updated_at: ~N[2026-06-23 07:29:22]}} [2026-06-23 07:29:22.870] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:22.875] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=26.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:22], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:29:22.875] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:26Z", "value" => "52"} [2026-06-23 07:29:22.876] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:22.915] [DEBUG] QUERY OK db=39.5ms idle=6.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:26Z", "52", "battery", 41385, ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:22.916] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334489, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:26Z", message: "Battery level", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:22], updated_at: ~N[2026-06-23 07:29:22]}} [2026-06-23 07:29:22.916] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:26Z", "value" => "online"} [2026-06-23 07:29:22.940] [DEBUG] QUERY OK db=23.5ms idle=41.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:26Z", "online", "network", 41385, ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:22.940] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334491, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:26Z", message: "Network connectivity", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:22], updated_at: ~N[2026-06-23 07:29:22]}} [2026-06-23 07:29:22.944] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:22.950] [DEBUG] QUERY OK source="tms_terminals" db=3.7ms idle=31.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:22], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:29:22.950] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:22.950] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:26Z", "value" => "0"} [2026-06-23 07:29:22.968] [DEBUG] QUERY OK db=16.4ms queue=0.2ms idle=10.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:26Z", "0", "cpu", 41385, ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:22.968] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334493, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:26Z", message: "CPU usage percentage", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:22], updated_at: ~N[2026-06-23 07:29:22]}} [2026-06-23 07:29:22.969] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:26Z", "value" => "1.0.0"} [2026-06-23 07:29:23.003] [DEBUG] QUERY OK db=32.7ms idle=19.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:26Z", "1.0.0", "parameter_config", 41385, ~N[2026-06-23 07:29:22], ~N[2026-06-23 07:29:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:23.004] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334495, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:26Z", message: "Current parameters version", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:22], updated_at: ~N[2026-06-23 07:29:22]}} [2026-06-23 07:29:23.004] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:26Z", "value" => "1.0.1"} [2026-06-23 07:29:23.026] [DEBUG] QUERY OK db=21.6ms idle=36.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:26Z", "1.0.1", "emv_config", 41385, ~N[2026-06-23 07:29:23], ~N[2026-06-23 07:29:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:23.026] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334497, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:26Z", message: "Current EMV config version", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:23], updated_at: ~N[2026-06-23 07:29:23]}} [2026-06-23 07:29:23.029] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:26Z", "value" => ""} [2026-06-23 07:29:23.059] [DEBUG] QUERY OK db=27.9ms queue=1.9ms idle=26.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:26Z", "keys_config", 41385, ~N[2026-06-23 07:29:23], ~N[2026-06-23 07:29:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:23.060] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334499, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:26Z", message: "Current keys config version", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:23], updated_at: ~N[2026-06-23 07:29:23]}} [2026-06-23 07:29:23.060] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:26Z", "value" => ""} [2026-06-23 07:29:23.095] [DEBUG] QUERY OK db=33.1ms idle=8.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:26Z", "application", 41385, ~N[2026-06-23 07:29:23], ~N[2026-06-23 07:29:23]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:23.095] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334501, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:26Z", message: "Current application version", status_log_id: 41385, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:23], updated_at: ~N[2026-06-23 07:29:23]}} [2026-06-23 07:29:23.114] [DEBUG] QUERY OK source="tms_terminals" db=19.0ms idle=35.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:23], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:29:23.115] [WARN ] Unexpected async result [2026-06-23 07:29:23.120] [WARN ] Unexpected async result [2026-06-23 07:29:23.121] [DEBUG] QUERY OK source="tms_terminals" db=6.0ms idle=20.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:23.134] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:23]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:32.019] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:32.019] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:35Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:35Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:35Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:35Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:35Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:35Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:35Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:35Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:35Z","vendor":"MoreFun"} [2026-06-23 07:29:32.020] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:35Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:35Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:35Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:35Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:35Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:35Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:35Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:35Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:35Z", "vendor" => "MoreFun"} [2026-06-23 07:29:32.025] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:32.027] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:32.027] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:32.031] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms idle=1816.5ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:32.035] [DEBUG] QUERY OK source="tms_terminals" db=4.4ms idle=913.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:32.040] [DEBUG] QUERY OK source="parameter_template_values" db=2.4ms idle=6.4ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:32.047] [DEBUG] QUERY OK source="parameter_definitions" db=1.0ms queue=2.4ms idle=7.6ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:32.053] [DEBUG] QUERY OK source="pos_terminal" db=0.7ms queue=0.3ms idle=11.1ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:32.088] [DEBUG] QUERY OK source="pos_merchant" db=34.2ms idle=7.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:32.092] [DEBUG] QUERY OK db=0.8ms queue=1.2ms idle=1877.0ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:32.092] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:32.097] [DEBUG] QUERY OK source="pos_terminal_data" db=4.0ms idle=40.6ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:32.098] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:32.100] [DEBUG] QUERY OK source="address" db=0.4ms idle=11.7ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:32.100] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:32.111] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:32.254] [DEBUG] QUERY OK db=90.5ms decode=0.9ms idle=61.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "eff65447e9d35af1b57d82625eb8073cb69658d471c828ca3c00effc9f54ae43", 1731, 927, ~U[2026-06-23 07:29:32Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:32.256] [INFO ] AutoPushService: Created push log 30567 for MF919 params.zip [2026-06-23 07:29:32.256] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 1731, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:32.256] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:32.257] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:32.264] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms idle=138.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:32.276] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:32.342] [DEBUG] QUERY OK db=62.7ms idle=26.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "4c3b5ff623ffd9ee200d8814e8329fac13dd7eb0200a05dd099637a59651dbf7", 1795, 17947, ~U[2026-06-23 07:29:32Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:32.342] [INFO ] AutoPushService: Created push log 30569 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:32.342] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1795, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:32.343] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:32.346] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:32.348] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms queue=0.5ms idle=82.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:32.348] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:32.349] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=6.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:32.349] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:32.360] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:32.360] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:32.360] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:32.362] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms idle=12.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:32.363] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:32.363] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:32.368] [DEBUG] QUERY OK source="tms_terminals" db=4.1ms idle=14.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:32.373] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:32.377] [DEBUG] QUERY OK source="parameter_templates" db=3.8ms idle=10.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:32.383] [DEBUG] QUERY OK source="config_file_versions" db=3.3ms queue=0.1ms idle=12.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:32.384] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:32.389] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms queue=0.4ms idle=7.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:32.415] [DEBUG] QUERY OK source="tms_terminals" db=24.6ms idle=5.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:32], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:32.459] [DEBUG] QUERY OK db=42.9ms queue=0.1ms idle=29.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:35Z", ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:32.459] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41387, oid: "organization_id", upload_time: "2026-06-22T22:39:35Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]} [2026-06-23 07:29:32.459] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:35Z", "value" => "online"} [2026-06-23 07:29:32.497] [DEBUG] QUERY OK db=35.4ms idle=48.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:35Z", "online", "status", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.499] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334503, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:35Z", message: "Terminal status update", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.499] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:32.503] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=43.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:32], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:29:32.504] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:32.504] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:35Z", "value" => "52"} [2026-06-23 07:29:32.568] [DEBUG] QUERY OK db=62.4ms idle=8.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:35Z", "52", "battery", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.569] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334505, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:35Z", message: "Battery level", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.569] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:35Z", "value" => "online"} [2026-06-23 07:29:32.613] [DEBUG] QUERY OK db=43.8ms idle=66.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:35Z", "online", "network", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.613] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334507, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:35Z", message: "Network connectivity", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.615] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:32.617] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=47.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:32], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:29:32.619] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:32.621] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:35Z", "value" => "0"} [2026-06-23 07:29:32.657] [DEBUG] QUERY OK db=36.0ms idle=7.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:35Z", "0", "cpu", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.658] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334509, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:35Z", message: "CPU usage percentage", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.658] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:35Z", "value" => "1.0.0"} [2026-06-23 07:29:32.714] [DEBUG] QUERY OK db=54.4ms queue=1.0ms idle=40.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:35Z", "1.0.0", "parameter_config", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.714] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334511, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:35Z", message: "Current parameters version", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.714] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:35Z", "value" => "1.0.1"} [2026-06-23 07:29:32.806] [DEBUG] QUERY OK db=87.6ms idle=61.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:35Z", "1.0.1", "emv_config", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.807] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334513, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:35Z", message: "Current EMV config version", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.807] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:35Z", "value" => ""} [2026-06-23 07:29:32.844] [DEBUG] QUERY OK db=29.3ms idle=100.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:35Z", "keys_config", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.844] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334515, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:35Z", message: "Current keys config version", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.844] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:35Z", "value" => ""} [2026-06-23 07:29:32.884] [DEBUG] QUERY OK db=37.3ms idle=38.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:35Z", "application", 41387, ~N[2026-06-23 07:29:32], ~N[2026-06-23 07:29:32]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:32.884] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334517, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:35Z", message: "Current application version", status_log_id: 41387, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:32], updated_at: ~N[2026-06-23 07:29:32]}} [2026-06-23 07:29:32.891] [DEBUG] QUERY OK source="tms_terminals" db=6.5ms idle=40.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:32], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:29:32.897] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=12.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:32.897] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:32]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:32.907] [WARN ] Unexpected async result [2026-06-23 07:29:32.907] [WARN ] Unexpected async result [2026-06-23 07:29:35.805] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:35.805] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:39Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:39Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:39Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:39Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:39Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:39Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:39Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:39Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:39Z","vendor":"MoreFun"} [2026-06-23 07:29:35.811] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:39Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:39Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:39Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:39Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:39Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:39Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:39Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:39Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:39Z", "vendor" => "MoreFun"} [2026-06-23 07:29:35.811] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:35.811] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:35.811] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:35.830] [DEBUG] QUERY OK source="parameter_templates" db=5.5ms queue=0.1ms idle=664.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:35.836] [DEBUG] QUERY OK source="tms_terminals" db=4.2ms queue=0.1ms idle=616.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:35.838] [DEBUG] QUERY OK source="parameter_template_values" db=1.0ms idle=12.1ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:35.851] [DEBUG] QUERY OK source="parameter_definitions" db=7.1ms queue=2.5ms idle=4.4ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:35.856] [DEBUG] QUERY OK source="pos_terminal" db=4.0ms idle=13.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:35.892] [DEBUG] QUERY OK source="pos_merchant" db=32.8ms idle=8.7ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:35.903] [DEBUG] QUERY OK db=0.7ms queue=9.6ms idle=1680.1ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:35.903] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:35.906] [DEBUG] QUERY OK source="pos_terminal_data" db=2.7ms idle=47.6ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:35.908] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:35.914] [DEBUG] QUERY OK source="address" db=2.2ms queue=0.1ms idle=17.0ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:35.914] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:35.926] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:36.007] [DEBUG] QUERY OK db=79.4ms idle=20.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "1cb8ece2a38d3047479a9436b89bc98df18b356e0bebfce4c58013d5600c81e9", 1859, 927, ~U[2026-06-23 07:29:35Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:35], ~N[2026-06-23 07:29:35]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:36.007] [INFO ] AutoPushService: Created push log 30570 for MF919 params.zip [2026-06-23 07:29:36.010] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 1859, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:36.010] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:36.011] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:36.012] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=99.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:36.017] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:36.068] [DEBUG] QUERY OK db=46.9ms idle=14.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "38defe20c12850b90f2e3d5fd0409b419cbf560b313b5a978ca6ebd14abde59a", 1923, 17947, ~U[2026-06-23 07:29:36Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:36.068] [INFO ] AutoPushService: Created push log 30572 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:36.068] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1923, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:36.070] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:36.071] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:36.073] [DEBUG] QUERY OK source="config_file_versions" db=1.5ms idle=59.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:36.073] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:36.078] [DEBUG] QUERY OK source="tms_terminals" db=4.6ms idle=6.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:36.079] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:36.086] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:36.086] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:36.087] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:36.092] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms idle=17.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:36.097] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:36.097] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:36.102] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=21.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:36.102] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:36.147] [DEBUG] QUERY OK source="tms_terminals" db=44.0ms idle=10.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:29:36], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:29:36.152] [DEBUG] QUERY OK source="parameter_templates" db=3.6ms queue=0.8ms idle=45.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:36.156] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms idle=7.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:36.156] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:36.161] [DEBUG] QUERY OK source="tms_terminals" db=4.4ms idle=4.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:36.192] [DEBUG] QUERY OK source="tms_terminals" db=29.1ms queue=1.7ms idle=5.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:36], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:36.242] [DEBUG] QUERY OK db=49.1ms idle=24.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:39Z", ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:36.242] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41389, oid: "organization_id", upload_time: "2026-06-22T22:39:39Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]} [2026-06-23 07:29:36.243] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:39Z", "value" => "online"} [2026-06-23 07:29:36.312] [DEBUG] QUERY OK db=66.5ms queue=1.8ms idle=51.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:39Z", "online", "status", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.312] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334519, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:39Z", message: "Terminal status update", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.312] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:36.317] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:36.318] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:39Z", "value" => "52"} [2026-06-23 07:29:36.476] [DEBUG] QUERY OK db=157.2ms idle=76.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:39Z", "52", "battery", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.477] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334521, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:39Z", message: "Battery level", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.479] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:39Z", "value" => "online"} [2026-06-23 07:29:36.596] [DEBUG] QUERY OK db=113.7ms idle=169.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:39Z", "online", "network", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.598] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334524, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:39Z", message: "Network connectivity", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.598] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:36.599] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:39Z", "value" => "0"} [2026-06-23 07:29:36.606] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:36.631] [DEBUG] QUERY OK db=31.8ms queue=0.7ms idle=123.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:39Z", "0", "cpu", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.632] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334526, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:39Z", message: "CPU usage percentage", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.632] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:39Z", "value" => "1.0.0"} [2026-06-23 07:29:36.685] [DEBUG] QUERY OK db=49.8ms idle=36.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:39Z", "1.0.0", "parameter_config", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.685] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334528, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:39Z", message: "Current parameters version", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.687] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:39Z", "value" => "1.0.1"} [2026-06-23 07:29:36.739] [DEBUG] QUERY OK db=45.2ms queue=5.9ms idle=56.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:39Z", "1.0.1", "emv_config", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.739] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334530, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:39Z", message: "Current EMV config version", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.740] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:39Z", "value" => ""} [2026-06-23 07:29:36.781] [DEBUG] QUERY OK db=41.2ms idle=57.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:39Z", "keys_config", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.781] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334532, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:39Z", message: "Current keys config version", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.786] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:39Z", "value" => ""} [2026-06-23 07:29:36.826] [DEBUG] QUERY OK db=36.1ms idle=50.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:39Z", "application", 41389, ~N[2026-06-23 07:29:36], ~N[2026-06-23 07:29:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:36.829] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334534, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:39Z", message: "Current application version", status_log_id: 41389, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:36], updated_at: ~N[2026-06-23 07:29:36]}} [2026-06-23 07:29:36.829] [WARN ] Unexpected async result [2026-06-23 07:29:36.835] [WARN ] Unexpected async result [2026-06-23 07:29:36.836] [DEBUG] QUERY OK source="tms_terminals" db=6.2ms idle=48.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:36.849] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:36]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:40.367] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:40.368] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:44Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:44Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:44Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:44Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:44Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:44Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:44Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:44Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:44Z","vendor":"MoreFun"} [2026-06-23 07:29:40.368] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:44Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:44Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:44Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:44Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:44Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:44Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:44Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:44Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:44Z", "vendor" => "MoreFun"} [2026-06-23 07:29:40.368] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:40.368] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:40.368] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:40.733] [DEBUG] QUERY OK source="parameter_templates" db=364.1ms idle=180.7ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:40.817] [DEBUG] QUERY OK source="tms_terminals" db=84.2ms idle=517.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:40.823] [DEBUG] QUERY OK source="parameter_template_values" db=4.7ms queue=0.7ms idle=85.0ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:40.833] [DEBUG] QUERY OK source="parameter_definitions" db=6.7ms queue=2.4ms idle=12.5ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:40.836] [DEBUG] QUERY OK source="pos_terminal" db=1.9ms idle=10.5ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:40.876] [DEBUG] QUERY OK source="pos_merchant" db=40.2ms idle=3.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:40.883] [DEBUG] QUERY OK db=3.4ms queue=1.9ms idle=1661.9ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:40.883] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:40.886] [DEBUG] QUERY OK source="pos_terminal_data" db=0.9ms idle=47.8ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:40.887] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:40.893] [DEBUG] QUERY OK source="address" db=0.5ms queue=5.3ms idle=10.7ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:40.897] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:40.912] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:41.057] [DEBUG] QUERY OK db=135.2ms idle=34.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "999439156d68103be82bd961bd24f376d0b78eeb97b11f5f3c6c5ccd45debdf4", 7682, 927, ~U[2026-06-23 07:29:40Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:40], ~N[2026-06-23 07:29:40]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:41.062] [INFO ] AutoPushService: Created push log 30575 for MF919 params.zip [2026-06-23 07:29:41.063] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 7682, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:41.063] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:41.063] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:41.077] [DEBUG] QUERY OK source="config_file_versions" db=9.2ms idle=173.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:41.094] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:41.129] [DEBUG] QUERY OK db=31.8ms queue=0.1ms idle=42.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "edea54b8a5bdaf87a6cb4a0f9d11bc68d43a53da16499f1dc26cb73b94bc884f", 1955, 17947, ~U[2026-06-23 07:29:41Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:41.131] [INFO ] AutoPushService: Created push log 30576 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:41.131] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1955, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:41.131] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:41.131] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:41.133] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms idle=55.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:41.134] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:41.137] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=5.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:41.137] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:41.157] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:41.158] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:41.160] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:41.163] [DEBUG] QUERY OK source="config_file_versions" db=2.1ms idle=27.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:41.163] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:41.163] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:41.168] [DEBUG] QUERY OK source="tms_terminals" db=4.0ms idle=26.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:41.168] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:41.216] [DEBUG] QUERY OK source="tms_terminals" db=47.8ms idle=5.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:29:41], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:29:41.231] [DEBUG] QUERY OK source="parameter_templates" db=8.8ms idle=28.4ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:41.240] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms idle=20.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:41.240] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:41.244] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=1.1ms idle=8.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:41.272] [DEBUG] QUERY OK source="tms_terminals" db=28.3ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:41], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:41.330] [DEBUG] QUERY OK db=57.3ms queue=0.1ms idle=29.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:44Z", ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:41.331] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41391, oid: "organization_id", upload_time: "2026-06-22T22:39:44Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]} [2026-06-23 07:29:41.332] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:44Z", "value" => "online"} [2026-06-23 07:29:41.371] [DEBUG] QUERY OK db=37.7ms idle=60.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:44Z", "online", "status", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.374] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334535, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:44Z", message: "Terminal status update", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.376] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:41.376] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:44Z", "value" => "52"} [2026-06-23 07:29:41.376] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:41.412] [DEBUG] QUERY OK db=34.6ms idle=46.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:44Z", "52", "battery", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.413] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334537, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:44Z", message: "Battery level", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.413] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:44Z", "value" => "online"} [2026-06-23 07:29:41.461] [DEBUG] QUERY OK db=45.9ms queue=0.2ms idle=43.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:44Z", "online", "network", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.461] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334539, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:44Z", message: "Network connectivity", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.461] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:41.464] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:41.464] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:44Z", "value" => "0"} [2026-06-23 07:29:41.500] [DEBUG] QUERY OK db=35.3ms idle=53.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:44Z", "0", "cpu", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.504] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334541, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:44Z", message: "CPU usage percentage", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.506] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:44Z", "value" => "1.0.0"} [2026-06-23 07:29:41.543] [DEBUG] QUERY OK db=34.7ms queue=2.6ms idle=45.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:44Z", "1.0.0", "parameter_config", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.544] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334543, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:44Z", message: "Current parameters version", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.544] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:44Z", "value" => "1.0.1"} [2026-06-23 07:29:41.582] [DEBUG] QUERY OK db=37.3ms idle=43.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:44Z", "1.0.1", "emv_config", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.582] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334545, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:44Z", message: "Current EMV config version", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.582] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:44Z", "value" => ""} [2026-06-23 07:29:41.654] [DEBUG] QUERY OK db=69.9ms idle=39.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:44Z", "keys_config", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.655] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334547, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:44Z", message: "Current keys config version", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.655] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:44Z", "value" => ""} [2026-06-23 07:29:41.685] [DEBUG] QUERY OK db=28.6ms idle=74.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:44Z", "application", 41391, ~N[2026-06-23 07:29:41], ~N[2026-06-23 07:29:41]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:41.687] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334549, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:44Z", message: "Current application version", status_log_id: 41391, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:41], updated_at: ~N[2026-06-23 07:29:41]}} [2026-06-23 07:29:41.690] [WARN ] Unexpected async result [2026-06-23 07:29:41.690] [WARN ] Unexpected async result [2026-06-23 07:29:41.698] [DEBUG] QUERY OK source="tms_terminals" db=7.4ms queue=0.1ms idle=38.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:41.699] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:29:44.006] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:29:44.006] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:39:47Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:39:47Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:39:47Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:39:47Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:39:47Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:39:47Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:39:47Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:39:47Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:39:47Z","vendor":"MoreFun"} [2026-06-23 07:29:44.007] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:47Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:47Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:47Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:47Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:47Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:47Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:47Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:47Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:39:47Z", "vendor" => "MoreFun"} [2026-06-23 07:29:44.016] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:29:44.017] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:29:44.018] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:29:44.023] [DEBUG] QUERY OK source="parameter_templates" db=5.4ms idle=812.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:29:44.029] [DEBUG] QUERY OK source="tms_terminals" db=3.7ms queue=1.8ms idle=803.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:29:44.033] [DEBUG] QUERY OK source="parameter_template_values" db=3.7ms idle=6.1ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:44.043] [DEBUG] QUERY OK source="parameter_definitions" db=5.5ms queue=3.5ms idle=4.5ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:29:44.053] [DEBUG] QUERY OK source="pos_terminal" db=0.8ms idle=16.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:29:44.085] [DEBUG] QUERY OK source="pos_merchant" db=31.6ms queue=0.1ms idle=10.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:29:44.095] [DEBUG] QUERY OK db=1.6ms queue=5.1ms idle=1873.1ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:29:44.101] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:29:44.106] [DEBUG] QUERY OK source="pos_terminal_data" db=3.1ms idle=51.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:29:44.106] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:29:44.121] [DEBUG] QUERY OK source="address" db=9.1ms idle=26.1ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:29:44.121] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:29:44.125] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:29:44.218] [DEBUG] QUERY OK db=85.7ms queue=1.2ms idle=23.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "b23f8950f2edf0f156fad53472905062b6cf12961265a4454049119a56675012", 7746, 927, ~U[2026-06-23 07:29:44Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:29:44.218] [INFO ] AutoPushService: Created push log 30579 for MF919 params.zip [2026-06-23 07:29:44.218] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 7746, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:29:44.219] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:44.219] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:29:44.234] [DEBUG] QUERY OK source="config_file_versions" db=4.4ms queue=3.1ms idle=13.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:29:44.248] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:29:44.292] [DEBUG] QUERY OK db=39.2ms queue=2.8ms idle=33.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c5d4ebd995847562f0138906e347dee2d0dfdd561d27a1f8ceb7afbdd0ff1008", 2115, 17947, ~U[2026-06-23 07:29:44Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:29:44.292] [INFO ] AutoPushService: Created push log 30581 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:29:44.292] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 2115, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:29:44.293] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:29:44.293] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:29:44.305] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=69.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:29:44.306] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:29:44.314] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms queue=2.8ms idle=16.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:29:44.314] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:29:44.326] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:29:44.330] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:44.330] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:29:44.336] [DEBUG] QUERY OK source="config_file_versions" db=5.4ms idle=24.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:29:44.338] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:29:44.338] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:29:44.344] [DEBUG] QUERY OK source="tms_terminals" db=5.0ms idle=24.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:29:44.344] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:29:44.355] [DEBUG] QUERY OK source="parameter_templates" db=9.6ms queue=0.2ms idle=9.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:29:44.379] [DEBUG] QUERY OK source="config_file_versions" db=19.6ms idle=14.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:29:44.379] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:29:44.395] [DEBUG] QUERY OK source="tms_terminals" db=6.3ms queue=1.9ms idle=35.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:29:44.424] [DEBUG] QUERY OK source="tms_terminals" db=26.3ms queue=2.6ms idle=16.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:44], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:29:44.480] [DEBUG] QUERY OK db=55.1ms idle=29.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:39:47Z", ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:29:44.480] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41393, oid: "organization_id", upload_time: "2026-06-22T22:39:47Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]} [2026-06-23 07:29:44.480] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:39:47Z", "value" => "online"} [2026-06-23 07:29:44.552] [DEBUG] QUERY OK db=71.1ms idle=56.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:39:47Z", "online", "status", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.553] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334552, itemkey: "status", value: "online", timestamp: "2026-06-22T22:39:47Z", message: "Terminal status update", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.553] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:29:44.555] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=74.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:44], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:29:44.555] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:39:47Z", "value" => "52"} [2026-06-23 07:29:44.555] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:44.580] [DEBUG] QUERY OK db=24.4ms idle=3.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:39:47Z", "52", "battery", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.580] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334554, itemkey: "battery", value: "52", timestamp: "2026-06-22T22:39:47Z", message: "Battery level", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.580] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:39:47Z", "value" => "online"} [2026-06-23 07:29:44.610] [DEBUG] QUERY OK db=29.4ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:39:47Z", "online", "network", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.614] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334555, itemkey: "network", value: "online", timestamp: "2026-06-22T22:39:47Z", message: "Network connectivity", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.614] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:29:44.615] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=34.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:44], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:29:44.615] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:39:47Z", "value" => "0"} [2026-06-23 07:29:44.617] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 5 terminals [2026-06-23 07:29:44.656] [DEBUG] QUERY OK db=39.2ms idle=6.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:39:47Z", "0", "cpu", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.657] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334557, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:39:47Z", message: "CPU usage percentage", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.657] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:39:47Z", "value" => "1.0.0"} [2026-06-23 07:29:44.683] [DEBUG] QUERY OK db=21.0ms queue=0.3ms idle=46.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:39:47Z", "1.0.0", "parameter_config", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.685] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334559, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:39:47Z", message: "Current parameters version", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.685] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:39:47Z", "value" => "1.0.1"} [2026-06-23 07:29:44.724] [DEBUG] QUERY OK db=36.7ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:39:47Z", "1.0.1", "emv_config", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.725] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334561, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:39:47Z", message: "Current EMV config version", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.725] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:39:47Z", "value" => ""} [2026-06-23 07:29:44.775] [DEBUG] QUERY OK db=50.1ms idle=42.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:39:47Z", "keys_config", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.776] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334563, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:39:47Z", message: "Current keys config version", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.776] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:39:47Z", "value" => ""} [2026-06-23 07:29:44.848] [DEBUG] QUERY OK db=71.6ms idle=53.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:39:47Z", "application", 41393, ~N[2026-06-23 07:29:44], ~N[2026-06-23 07:29:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:29:44.848] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334565, itemkey: "application", value: nil, timestamp: "2026-06-22T22:39:47Z", message: "Current application version", status_log_id: 41393, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:29:44], updated_at: ~N[2026-06-23 07:29:44]}} [2026-06-23 07:29:44.849] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=72.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:29:44], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:29:44.849] [WARN ] Unexpected async result [2026-06-23 07:29:44.850] [WARN ] Unexpected async result [2026-06-23 07:29:44.851] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=1.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:29:44.854] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:30:54.980] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 07:30:54.980] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"-4516427-01-03T01:05:46Z","org.device":[{"itemkey":"status","value":"online","timestamp":"-4516427-01-03T01:05:46Z","message":"Device Connected"}]} [2026-06-23 07:30:54.981] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-4516427-01-03T01:05:46Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "-4516427-01-03T01:05:46Z"} [2026-06-23 07:30:54.981] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 07:30:54.984] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms queue=0.1ms idle=736.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:30:54.984] [INFO ] Terminal updated: 61250424798001 [2026-06-23 07:30:55.410] [DEBUG] QUERY OK source="tms_terminals" db=421.4ms idle=20.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:30:54], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:30:55.413] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms queue=0.1ms idle=426.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:30:55.527] [DEBUG] QUERY OK source="tms_terminals" db=113.9ms idle=3.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:30:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:30:55.582] [DEBUG] QUERY OK db=54.2ms idle=114.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "-4516427-01-03T01:05:46Z", ~N[2026-06-23 07:30:55], ~N[2026-06-23 07:30:55]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:30:55.582] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41396, oid: "org-id-placeholder", upload_time: "-4516427-01-03T01:05:46Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:30:55], updated_at: ~N[2026-06-23 07:30:55]} [2026-06-23 07:30:55.582] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "-4516427-01-03T01:05:46Z", "value" => "online"} [2026-06-23 07:30:55.621] [DEBUG] QUERY OK db=37.8ms idle=56.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "-4516427-01-03T01:05:46Z", "online", "status", 41396, ~N[2026-06-23 07:30:55], ~N[2026-06-23 07:30:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:30:55.623] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334568, itemkey: "status", value: "online", timestamp: "-4516427-01-03T01:05:46Z", message: "Device Connected", status_log_id: 41396, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:30:55], updated_at: ~N[2026-06-23 07:30:55]}} [2026-06-23 07:30:55.623] [INFO ] Setting terminal 61250424798001 status to 'online' from status itemkey [2026-06-23 07:30:55.629] [DEBUG] QUERY OK source="tms_terminals" db=5.9ms idle=41.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:30:55], 2] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:30:55.632] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:30:55.634] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=0.2ms idle=11.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:30:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:30:55.642] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms queue=1.1ms idle=10.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:30:55.646] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:29:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:31:21.618] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:31:21.618] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:41:25Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:41:25Z","value":"54"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:41:25Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:41:25Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:41:25Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:41:25Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:41:25Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:41:25Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:41:25Z","vendor":"MoreFun"} [2026-06-23 07:31:21.618] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:41:25Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:41:25Z", "value" => "54"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:41:25Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:41:25Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:41:25Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:41:25Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:41:25Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:41:25Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:41:25Z", "vendor" => "MoreFun"} [2026-06-23 07:31:21.618] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:31:21.619] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:31:21.619] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:31:21.620] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms idle=1323.4ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:31:21.622] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=320.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:31:21.624] [DEBUG] QUERY OK source="parameter_template_values" db=2.0ms queue=0.1ms idle=1.5ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:31:21.628] [DEBUG] QUERY OK source="parameter_definitions" db=1.2ms queue=0.6ms idle=4.3ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:31:21.629] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms idle=4.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:31:21.669] [DEBUG] QUERY OK source="pos_merchant" db=39.6ms idle=1.0ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:31:21.671] [DEBUG] QUERY OK db=0.8ms queue=0.6ms idle=410.5ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:31:21.671] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:31:21.672] [DEBUG] QUERY OK source="pos_terminal_data" db=0.5ms queue=0.1ms idle=42.2ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:31:21.672] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:31:21.673] [DEBUG] QUERY OK source="address" db=0.5ms queue=0.1ms idle=3.3ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:31:21.673] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:31:21.674] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:31:21.776] [DEBUG] QUERY OK db=98.9ms idle=3.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "69b77ee2d5d832dcde5fc79fb88eb90759427e3f8af07309aeb3c6ba853e1e1e", 1540, 927, ~U[2026-06-23 07:31:21Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:31:21], ~N[2026-06-23 07:31:21]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:31:21.776] [INFO ] AutoPushService: Created push log 30582 for MF919 params.zip [2026-06-23 07:31:21.776] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 1540, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:31:21.776] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:31:21.777] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:31:21.780] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=105.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:31:21.786] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:31:21.838] [DEBUG] QUERY OK db=48.9ms idle=13.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "da5e4f478fc728e413a614b4e877d3415ffcd1d162d9fb8413557c4dc1993a7c", 2307, 17947, ~U[2026-06-23 07:31:21Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:31:21], ~N[2026-06-23 07:31:21]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:31:21.838] [INFO ] AutoPushService: Created push log 30584 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:31:21.838] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 2307, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:31:21.838] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:31:21.839] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:31:21.841] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=58.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:31:21.841] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:31:21.842] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=4.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:31:21.842] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:31:21.844] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:31:21.844] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:31:21.844] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:31:21.845] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=3.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:31:21.846] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:31:21.846] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:31:21.847] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=3.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:31:21.848] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:31:21.896] [DEBUG] QUERY OK source="tms_terminals" db=47.4ms queue=0.1ms idle=2.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:31:21], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:31:21.898] [DEBUG] QUERY OK source="parameter_templates" db=1.4ms queue=0.1ms idle=48.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:31:21.900] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=3.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:31:21.901] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:31:21.903] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=4.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:31:21.935] [DEBUG] QUERY OK source="tms_terminals" db=29.6ms idle=4.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:31:21], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:31:21.981] [DEBUG] QUERY OK db=44.4ms queue=0.8ms idle=32.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:41:25Z", ~N[2026-06-23 07:31:21], ~N[2026-06-23 07:31:21]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:31:21.981] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41398, oid: "organization_id", upload_time: "2026-06-22T22:41:25Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:21], updated_at: ~N[2026-06-23 07:31:21]} [2026-06-23 07:31:21.982] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:41:25Z", "value" => "online"} [2026-06-23 07:31:22.027] [DEBUG] QUERY OK db=45.2ms idle=47.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:41:25Z", "online", "status", 41398, ~N[2026-06-23 07:31:21], ~N[2026-06-23 07:31:21]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.028] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334570, itemkey: "status", value: "online", timestamp: "2026-06-22T22:41:25Z", message: "Terminal status update", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:21], updated_at: ~N[2026-06-23 07:31:21]}} [2026-06-23 07:31:22.028] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:31:22.028] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:41:25Z", "value" => "54"} [2026-06-23 07:31:22.028] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:31:22.070] [DEBUG] QUERY OK db=40.9ms idle=47.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:41:25Z", "54", "battery", 41398, ~N[2026-06-23 07:31:22], ~N[2026-06-23 07:31:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.070] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334572, itemkey: "battery", value: "54", timestamp: "2026-06-22T22:41:25Z", message: "Battery level", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:22], updated_at: ~N[2026-06-23 07:31:22]}} [2026-06-23 07:31:22.070] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:41:25Z", "value" => "online"} [2026-06-23 07:31:22.111] [DEBUG] QUERY OK db=39.8ms idle=43.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:41:25Z", "online", "network", 41398, ~N[2026-06-23 07:31:22], ~N[2026-06-23 07:31:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.111] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334574, itemkey: "network", value: "online", timestamp: "2026-06-22T22:41:25Z", message: "Network connectivity", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:22], updated_at: ~N[2026-06-23 07:31:22]}} [2026-06-23 07:31:22.112] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:31:22.112] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:31:22.112] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:41:25Z", "value" => "0"} [2026-06-23 07:31:22.148] [DEBUG] QUERY OK db=34.3ms queue=0.2ms idle=43.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:41:25Z", "0", "cpu", 41398, ~N[2026-06-23 07:31:22], ~N[2026-06-23 07:31:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.150] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334576, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:41:25Z", message: "CPU usage percentage", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:22], updated_at: ~N[2026-06-23 07:31:22]}} [2026-06-23 07:31:22.150] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:41:25Z", "value" => "1.0.0"} [2026-06-23 07:31:22.203] [DEBUG] QUERY OK db=52.3ms idle=40.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:41:25Z", "1.0.0", "parameter_config", 41398, ~N[2026-06-23 07:31:22], ~N[2026-06-23 07:31:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.204] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334578, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:41:25Z", message: "Current parameters version", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:22], updated_at: ~N[2026-06-23 07:31:22]}} [2026-06-23 07:31:22.204] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:41:25Z", "value" => "1.0.1"} [2026-06-23 07:31:22.285] [DEBUG] QUERY OK db=80.2ms idle=56.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:41:25Z", "1.0.1", "emv_config", 41398, ~N[2026-06-23 07:31:22], ~N[2026-06-23 07:31:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.285] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334580, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:41:25Z", message: "Current EMV config version", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:22], updated_at: ~N[2026-06-23 07:31:22]}} [2026-06-23 07:31:22.285] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:41:25Z", "value" => ""} [2026-06-23 07:31:22.458] [DEBUG] QUERY OK db=172.8ms idle=82.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:41:25Z", "keys_config", 41398, ~N[2026-06-23 07:31:22], ~N[2026-06-23 07:31:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.458] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334582, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:41:25Z", message: "Current keys config version", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:22], updated_at: ~N[2026-06-23 07:31:22]}} [2026-06-23 07:31:22.459] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:41:25Z", "value" => ""} [2026-06-23 07:31:22.511] [DEBUG] QUERY OK db=49.9ms idle=156.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:41:25Z", "application", 41398, ~N[2026-06-23 07:31:22], ~N[2026-06-23 07:31:22]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:31:22.512] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334584, itemkey: "application", value: nil, timestamp: "2026-06-22T22:41:25Z", message: "Current application version", status_log_id: 41398, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:31:22], updated_at: ~N[2026-06-23 07:31:22]}} [2026-06-23 07:31:22.512] [WARN ] Unexpected async result [2026-06-23 07:31:22.512] [WARN ] Unexpected async result [2026-06-23 07:31:22.514] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=54.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:31:22.515] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:31:21]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:32:48.229] [INFO ] Running offline device check... [2026-06-23 07:32:48.229] [INFO ] Starting offline device check... [2026-06-23 07:32:48.234] [DEBUG] QUERY OK source="tms_terminals" db=4.0ms idle=1115.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:32:48.253] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.7ms idle=335.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.265] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=22.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.269] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=12.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.270] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.273] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.275] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.276] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.2ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.278] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.278] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.282] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.287] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.290] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms queue=0.3ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.303] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.0ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.309] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=12.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.311] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.313] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.332] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=14.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.338] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=2.8ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.341] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.2ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.342] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.360] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.3ms queue=0.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.361] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=18.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.376] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.0ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=12.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.383] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.385] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.386] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.392] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.393] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.395] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.398] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.400] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.405] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms queue=0.8ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.407] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.408] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.409] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.410] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:32:48.410] [INFO ] Offline device check completed. Found 35 offline devices, updated 0 statuses. [2026-06-23 07:32:48.412] [INFO ] Offline device check completed successfully [2026-06-23 07:32:50.381] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:32:50.381] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:32:50Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:32:50Z","value":"85"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:32:50Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:32:50Z","value":"13"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:32:50Z","value":"57"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:32:50Z","value":"13.0246035"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:32:50Z","value":"77.6402597"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:32:50Z","vendor":"softpos"} [2026-06-23 07:32:50.382] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:32:50Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:32:50Z", "value" => "85"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:32:50Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:32:50Z", "value" => "13"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:32:50Z", "value" => "57"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:32:50Z", "value" => "13.0246035"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:32:50Z", "value" => "77.6402597"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:32:50Z", "vendor" => "softpos"} [2026-06-23 07:32:50.382] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:32:50.382] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:32:50.382] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:32:50.387] [DEBUG] QUERY OK source="parameter_templates" db=3.9ms idle=470.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:32:50.394] [DEBUG] QUERY OK source="tms_terminals" db=3.3ms queue=3.9ms idle=96.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:32:50.411] [DEBUG] QUERY OK source="parameter_template_values" db=12.5ms idle=7.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:32:50.431] [DEBUG] QUERY OK source="parameter_definitions" db=14.3ms queue=5.6ms idle=17.0ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:32:50.442] [DEBUG] QUERY OK source="pos_terminal" db=9.7ms idle=24.8ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:32:50.473] [DEBUG] QUERY OK source="pos_merchant" db=25.1ms queue=1.1ms idle=15.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:32:50.476] [DEBUG] QUERY OK db=0.9ms queue=1.9ms idle=1182.8ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:32:50.476] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:32:50.478] [DEBUG] QUERY OK source="pos_terminal_data" db=1.4ms idle=34.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:32:50.486] [DEBUG] QUERY OK source="address" db=8.1ms queue=0.1ms idle=5.1ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:32:50.487] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:32:50.573] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:32:50.656] [DEBUG] QUERY OK db=69.0ms idle=105.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "191884f00ffad74f8920e5f342629cf7c4e745e71c850871d53bcd14329053f3", 8066, 946, ~U[2026-06-23 07:32:50Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:32:50], ~N[2026-06-23 07:32:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:32:50.656] [INFO ] AutoPushService: Created push log 30587 for MF919 params.zip [2026-06-23 07:32:50.656] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 8066, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:32:50.657] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:32:50.657] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:32:50.666] [DEBUG] QUERY OK source="config_file_versions" db=9.3ms idle=170.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:32:50.667] [ERROR] L3ConfigZipBuilder: Failed to read priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json: :enoent [2026-06-23 07:32:50.667] [ERROR] AutoPushService: L3ConfigZipBuilder failed for 397889130000000_88913585: "Failed to read YSDK_L3_configuration.json: :enoent" [2026-06-23 07:32:50.673] [DEBUG] QUERY OK source="config_file_versions" db=5.6ms idle=14.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:32:50.673] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:32:50.675] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=7.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:32:50.675] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:32:50.687] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:32:50.694] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:32:50.694] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:32:50.694] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:32:50.695] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:32:50.701] [DEBUG] QUERY OK source="tms_terminals" db=6.1ms idle=21.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:32:50.706] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:32:50.731] [DEBUG] QUERY OK source="tms_terminals" db=19.2ms idle=32.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:32:50], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:32:50.735] [DEBUG] QUERY OK source="parameter_templates" db=1.1ms idle=32.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:32:50.752] [DEBUG] QUERY OK source="config_file_versions" db=11.7ms queue=0.1ms idle=13.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:32:50.752] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:32:50.770] [DEBUG] QUERY OK source="tms_terminals" db=12.1ms queue=5.7ms idle=17.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:32:50.800] [DEBUG] QUERY OK source="tms_terminals" db=12.6ms queue=16.7ms idle=18.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:32:50], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:32:50.853] [DEBUG] QUERY OK db=41.8ms decode=1.4ms queue=1.9ms idle=37.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:32:50Z", ~N[2026-06-23 07:32:50], ~N[2026-06-23 07:32:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:32:50.854] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41400, oid: "organization_id", upload_time: "2026-06-23T07:32:50Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:50], updated_at: ~N[2026-06-23 07:32:50]} [2026-06-23 07:32:50.854] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:32:50Z", "value" => "online"} [2026-06-23 07:32:50.882] [DEBUG] QUERY OK db=17.8ms queue=1.1ms idle=63.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:32:50Z", "online", "status", 41400, ~N[2026-06-23 07:32:50], ~N[2026-06-23 07:32:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:50.882] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334586, itemkey: "status", value: "online", timestamp: "2026-06-23T07:32:50Z", message: "Terminal status update", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:50], updated_at: ~N[2026-06-23 07:32:50]}} [2026-06-23 07:32:50.882] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:32:50.882] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:32:50Z", "value" => "85"} [2026-06-23 07:32:50.903] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:32:50.919] [DEBUG] QUERY OK db=35.8ms idle=30.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:32:50Z", "85", "battery", 41400, ~N[2026-06-23 07:32:50], ~N[2026-06-23 07:32:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:50.919] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334588, itemkey: "battery", value: "85", timestamp: "2026-06-23T07:32:50Z", message: "Battery level", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:50], updated_at: ~N[2026-06-23 07:32:50]}} [2026-06-23 07:32:50.922] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:32:50Z", "value" => "online"} [2026-06-23 07:32:50.951] [DEBUG] QUERY OK db=21.9ms queue=6.1ms idle=4.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:32:50Z", "online", "network", 41400, ~N[2026-06-23 07:32:50], ~N[2026-06-23 07:32:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:50.951] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334590, itemkey: "network", value: "online", timestamp: "2026-06-23T07:32:50Z", message: "Network connectivity", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:50], updated_at: ~N[2026-06-23 07:32:50]}} [2026-06-23 07:32:50.951] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:32:50.952] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:32:50Z", "value" => "13"} [2026-06-23 07:32:50.952] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:32:50.993] [DEBUG] QUERY OK db=35.1ms queue=3.7ms idle=19.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:32:50Z", "13", "cpu", 41400, ~N[2026-06-23 07:32:50], ~N[2026-06-23 07:32:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:50.994] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334591, itemkey: "cpu", value: "13", timestamp: "2026-06-23T07:32:50Z", message: "CPU usage percentage", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:50], updated_at: ~N[2026-06-23 07:32:50]}} [2026-06-23 07:32:50.994] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:32:50Z", "value" => "57"} [2026-06-23 07:32:51.025] [DEBUG] QUERY OK db=26.4ms idle=47.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:32:50Z", "57", "memory", 41400, ~N[2026-06-23 07:32:50], ~N[2026-06-23 07:32:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:51.025] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334593, itemkey: "memory", value: "57", timestamp: "2026-06-23T07:32:50Z", message: "Memory usage percentage", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:50], updated_at: ~N[2026-06-23 07:32:50]}} [2026-06-23 07:32:51.025] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:32:51.100] [DEBUG] QUERY OK db=32.6ms queue=41.8ms idle=34.9ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41400, ~N[2026-06-23 07:32:51], ~N[2026-06-23 07:32:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:51.100] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334596, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:51], updated_at: ~N[2026-06-23 07:32:51]}} [2026-06-23 07:32:51.101] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:32:51.179] [DEBUG] QUERY OK db=36.6ms queue=41.3ms idle=75.7ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41400, ~N[2026-06-23 07:32:51], ~N[2026-06-23 07:32:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:51.179] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334598, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:51], updated_at: ~N[2026-06-23 07:32:51]}} [2026-06-23 07:32:51.179] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:32:51.205] [DEBUG] QUERY OK db=25.3ms idle=79.4ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41400, ~N[2026-06-23 07:32:51], ~N[2026-06-23 07:32:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:51.205] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334600, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:51], updated_at: ~N[2026-06-23 07:32:51]}} [2026-06-23 07:32:51.205] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:32:51.308] [DEBUG] QUERY OK db=102.5ms idle=26.8ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41400, ~N[2026-06-23 07:32:51], ~N[2026-06-23 07:32:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:51.309] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334602, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:51], updated_at: ~N[2026-06-23 07:32:51]}} [2026-06-23 07:32:51.309] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:32:50Z", "value" => "13.0246035"} [2026-06-23 07:32:51.334] [DEBUG] QUERY OK db=24.8ms idle=104.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:32:50Z", "13.0246035", "latitude", 41400, ~N[2026-06-23 07:32:51], ~N[2026-06-23 07:32:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:51.334] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334604, itemkey: "latitude", value: "13.0246035", timestamp: "2026-06-23T07:32:50Z", message: "Device Latitude", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:51], updated_at: ~N[2026-06-23 07:32:51]}} [2026-06-23 07:32:51.335] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:32:50Z", "value" => "77.6402597"} [2026-06-23 07:32:51.377] [DEBUG] QUERY OK db=42.2ms queue=0.1ms idle=26.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:32:50Z", "77.6402597", "longitude", 41400, ~N[2026-06-23 07:32:51], ~N[2026-06-23 07:32:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:32:51.378] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334606, itemkey: "longitude", value: "77.6402597", timestamp: "2026-06-23T07:32:50Z", message: "Device Longitude", status_log_id: 41400, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:32:51], updated_at: ~N[2026-06-23 07:32:51]}} [2026-06-23 07:32:51.382] [WARN ] Unexpected async result [2026-06-23 07:32:51.384] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=48.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:32:51.392] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:31:21]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:33:07.175] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:33:07.175] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:43:10Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:43:10Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:43:10Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:43:10Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:43:10Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:43:10Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:43:10Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:43:10Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:43:10Z","vendor":"MoreFun"} [2026-06-23 07:33:07.176] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:10Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:10Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:10Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:10Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:10Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:10Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:10Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:10Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:43:10Z", "vendor" => "MoreFun"} [2026-06-23 07:33:07.176] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:33:07.176] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:33:07.176] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:33:07.180] [DEBUG] QUERY OK source="parameter_templates" db=4.3ms idle=881.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:33:07.190] [DEBUG] QUERY OK source="tms_terminals" db=8.2ms idle=116.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:33:07.192] [DEBUG] QUERY OK source="parameter_template_values" db=1.0ms queue=0.3ms idle=10.5ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:07.200] [DEBUG] QUERY OK source="parameter_definitions" db=3.0ms queue=3.7ms idle=2.4ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:07.203] [DEBUG] QUERY OK source="pos_terminal" db=2.4ms idle=7.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:33:07.241] [DEBUG] QUERY OK source="pos_merchant" db=38.2ms idle=3.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:33:07.252] [DEBUG] QUERY OK db=7.6ms queue=3.2ms idle=1944.2ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:33:07.252] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:33:07.256] [DEBUG] QUERY OK source="pos_terminal_data" db=3.1ms idle=50.0ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:33:07.256] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:33:07.271] [DEBUG] QUERY OK source="address" db=9.6ms queue=0.1ms idle=20.4ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:33:07.279] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:33:07.283] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:33:07.327] [DEBUG] QUERY OK db=39.1ms idle=27.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c4833eeb3ff83ac40d390094062c3ea71c121f7b209d8929646c2e9e49ac5e61", 8130, 927, ~U[2026-06-23 07:33:07Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:33:07.329] [INFO ] AutoPushService: Created push log 30589 for MF919 params.zip [2026-06-23 07:33:07.330] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 8130, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:33:07.330] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:33:07.333] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:33:07.342] [DEBUG] QUERY OK source="config_file_versions" db=1.4ms idle=68.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:33:07.356] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:33:07.384] [DEBUG] QUERY OK db=26.4ms queue=0.5ms idle=34.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "0c12836279925089f59f3542222cd4c1eca6a33371579be8fdb73b80261e56e0", 1636, 17947, ~U[2026-06-23 07:33:07Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:33:07.385] [INFO ] AutoPushService: Created push log 30591 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:33:07.385] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 1636, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:33:07.385] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:33:07.385] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:33:07.400] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=56.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:33:07.400] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:33:07.405] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms queue=1.4ms idle=15.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:33:07.405] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:33:07.432] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:33:07.432] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:07.432] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:07.436] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms queue=2.7ms idle=33.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:33:07.440] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:33:07.441] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:33:07.447] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=40.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:33:07.451] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:33:07.485] [DEBUG] QUERY OK source="tms_terminals" db=33.1ms idle=15.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:33:07], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:33:07.491] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms idle=42.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:33:07.498] [DEBUG] QUERY OK source="config_file_versions" db=6.1ms queue=0.1ms idle=6.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:33:07.498] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:33:07.511] [DEBUG] QUERY OK source="tms_terminals" db=4.4ms queue=0.6ms idle=15.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:33:07.544] [DEBUG] QUERY OK source="tms_terminals" db=32.4ms idle=14.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:07], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:33:07.576] [DEBUG] QUERY OK db=27.0ms idle=37.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:43:10Z", ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:33:07.578] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41402, oid: "organization_id", upload_time: "2026-06-22T22:43:10Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]} [2026-06-23 07:33:07.578] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:10Z", "value" => "online"} [2026-06-23 07:33:07.628] [DEBUG] QUERY OK db=49.2ms idle=34.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:43:10Z", "online", "status", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:07.628] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334607, itemkey: "status", value: "online", timestamp: "2026-06-22T22:43:10Z", message: "Terminal status update", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:07.628] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:33:07.629] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:10Z", "value" => "55"} [2026-06-23 07:33:07.629] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:07.683] [DEBUG] QUERY OK db=38.5ms queue=15.7ms idle=52.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:43:10Z", "55", "battery", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:07.684] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334610, itemkey: "battery", value: "55", timestamp: "2026-06-22T22:43:10Z", message: "Battery level", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:07.684] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:10Z", "value" => "online"} [2026-06-23 07:33:07.729] [DEBUG] QUERY OK db=42.5ms queue=1.9ms idle=56.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:43:10Z", "online", "network", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:07.738] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334612, itemkey: "network", value: "online", timestamp: "2026-06-22T22:43:10Z", message: "Network connectivity", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:07.738] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:33:07.739] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:10Z", "value" => "0"} [2026-06-23 07:33:07.739] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:07.761] [DEBUG] QUERY OK db=17.6ms queue=4.8ms idle=55.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:43:10Z", "0", "cpu", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:07.762] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334613, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:43:10Z", message: "CPU usage percentage", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:07.774] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:10Z", "value" => "1.0.0"} [2026-06-23 07:33:07.814] [DEBUG] QUERY OK db=39.7ms idle=45.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:43:10Z", "1.0.0", "parameter_config", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:07.815] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334615, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:43:10Z", message: "Current parameters version", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:07.816] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:10Z", "value" => "1.0.1"} [2026-06-23 07:33:07.850] [DEBUG] QUERY OK db=26.4ms idle=62.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:43:10Z", "1.0.1", "emv_config", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:07.851] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334617, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:43:10Z", message: "Current EMV config version", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:07.851] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:10Z", "value" => ""} [2026-06-23 07:33:07.919] [DEBUG] QUERY OK db=24.8ms queue=42.6ms idle=37.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:43:10Z", "keys_config", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:07.922] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334619, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:43:10Z", message: "Current keys config version", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:07.922] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:10Z", "value" => ""} [2026-06-23 07:33:08.005] [DEBUG] QUERY OK db=40.0ms queue=42.6ms idle=72.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:43:10Z", "application", 41402, ~N[2026-06-23 07:33:07], ~N[2026-06-23 07:33:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:08.007] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334621, itemkey: "application", value: nil, timestamp: "2026-06-22T22:43:10Z", message: "Current application version", status_log_id: 41402, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:07], updated_at: ~N[2026-06-23 07:33:07]}} [2026-06-23 07:33:08.015] [WARN ] Unexpected async result [2026-06-23 07:33:08.015] [WARN ] Unexpected async result [2026-06-23 07:33:08.026] [DEBUG] QUERY OK source="tms_terminals" db=10.4ms queue=0.1ms idle=96.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:33:08.030] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:07]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:33:26.834] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:33:26.834] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:43:30Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:43:30Z","value":"56"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:43:30Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:43:30Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:43:30Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:43:30Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:43:30Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:43:30Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:43:30Z","vendor":"MoreFun"} [2026-06-23 07:33:26.835] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:30Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:30Z", "value" => "56"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:30Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:30Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:30Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:30Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:30Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:30Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:43:30Z", "vendor" => "MoreFun"} [2026-06-23 07:33:26.835] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:33:26.835] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:33:26.835] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:33:26.836] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=1518.4ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:33:26.839] [DEBUG] QUERY OK source="tms_terminals" db=3.2ms idle=599.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:33:26.841] [DEBUG] QUERY OK source="parameter_template_values" db=1.3ms idle=3.6ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:26.851] [DEBUG] QUERY OK source="parameter_definitions" db=3.5ms queue=6.2ms idle=2.6ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:26.856] [DEBUG] QUERY OK source="pos_terminal" db=4.1ms idle=11.2ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:33:26.893] [DEBUG] QUERY OK source="pos_merchant" db=31.6ms queue=2.3ms idle=7.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:33:26.902] [DEBUG] QUERY OK db=4.0ms queue=5.1ms idle=594.5ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:33:26.902] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:33:26.907] [DEBUG] QUERY OK source="pos_terminal_data" db=4.0ms idle=46.6ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:33:26.907] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:33:26.915] [DEBUG] QUERY OK source="address" db=2.0ms queue=0.1ms idle=19.7ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:33:26.915] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:33:26.956] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:33:27.015] [DEBUG] QUERY OK db=57.5ms idle=50.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "1493f3abc4a31d54780b8ad5460aea5b699b4cba3f9e6f0b4e950f0bc6074352", 8322, 927, ~U[2026-06-23 07:33:26Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:33:26], ~N[2026-06-23 07:33:26]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:33:27.015] [INFO ] AutoPushService: Created push log 30594 for MF919 params.zip [2026-06-23 07:33:27.015] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 8322, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:33:27.015] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:33:27.016] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:33:27.035] [DEBUG] QUERY OK source="config_file_versions" db=2.5ms idle=117.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:33:27.046] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:33:27.095] [DEBUG] QUERY OK db=46.3ms idle=33.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "88e85e81559fe8a1609c6925f5e63da711bfacd8c9dcf139ce2c824cb649cecb", 8386, 17947, ~U[2026-06-23 07:33:27Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:33:27.095] [INFO ] AutoPushService: Created push log 30596 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:33:27.095] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 8386, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:33:27.099] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:33:27.099] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:33:27.103] [DEBUG] QUERY OK source="config_file_versions" db=4.0ms queue=0.2ms idle=64.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:33:27.103] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:33:27.105] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=9.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:33:27.105] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:33:27.114] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:33:27.115] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:27.115] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:27.128] [DEBUG] QUERY OK source="config_file_versions" db=12.5ms queue=0.1ms idle=11.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:33:27.128] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:33:27.128] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:33:27.133] [DEBUG] QUERY OK source="tms_terminals" db=4.5ms idle=23.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:33:27.133] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:33:27.134] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=5.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:33:27.138] [DEBUG] QUERY OK source="config_file_versions" db=3.7ms idle=1.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:33:27.138] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:33:27.147] [DEBUG] QUERY OK source="tms_terminals" db=8.9ms idle=4.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:33:27.197] [DEBUG] QUERY OK source="tms_terminals" db=46.9ms idle=9.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:27], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:33:27.253] [DEBUG] QUERY OK db=53.0ms queue=2.5ms idle=50.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:43:30Z", ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:33:27.253] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41404, oid: "organization_id", upload_time: "2026-06-22T22:43:30Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]} [2026-06-23 07:33:27.254] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:30Z", "value" => "online"} [2026-06-23 07:33:27.369] [DEBUG] QUERY OK db=115.2ms idle=8.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:43:30Z", "online", "status", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.369] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334624, itemkey: "status", value: "online", timestamp: "2026-06-22T22:43:30Z", message: "Terminal status update", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.369] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:33:27.371] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=116.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:27], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:33:27.371] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:30Z", "value" => "56"} [2026-06-23 07:33:27.371] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:27.465] [DEBUG] QUERY OK db=93.8ms queue=0.3ms idle=2.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:43:30Z", "56", "battery", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.466] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334626, itemkey: "battery", value: "56", timestamp: "2026-06-22T22:43:30Z", message: "Battery level", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.467] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:30Z", "value" => "online"} [2026-06-23 07:33:27.542] [DEBUG] QUERY OK db=74.8ms idle=96.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:43:30Z", "online", "network", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.542] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334628, itemkey: "network", value: "online", timestamp: "2026-06-22T22:43:30Z", message: "Network connectivity", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.542] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:33:27.543] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=77.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:27], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:33:27.544] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:30Z", "value" => "0"} [2026-06-23 07:33:27.544] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:27.676] [DEBUG] QUERY OK db=132.0ms queue=0.2ms idle=2.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:43:30Z", "0", "cpu", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.677] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334630, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:43:30Z", message: "CPU usage percentage", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.677] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:30Z", "value" => "1.0.0"} [2026-06-23 07:33:27.749] [DEBUG] QUERY OK db=71.9ms idle=133.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:43:30Z", "1.0.0", "parameter_config", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.750] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334632, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:43:30Z", message: "Current parameters version", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.750] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:30Z", "value" => "1.0.1"} [2026-06-23 07:33:27.793] [DEBUG] QUERY OK db=37.8ms idle=78.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:43:30Z", "1.0.1", "emv_config", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.797] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334634, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:43:30Z", message: "Current EMV config version", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.797] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:30Z", "value" => ""} [2026-06-23 07:33:27.844] [DEBUG] QUERY OK db=46.7ms queue=0.1ms idle=47.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:43:30Z", "keys_config", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.844] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334636, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:43:30Z", message: "Current keys config version", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.844] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:30Z", "value" => ""} [2026-06-23 07:33:27.901] [DEBUG] QUERY OK db=56.0ms idle=52.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:43:30Z", "application", 41404, ~N[2026-06-23 07:33:27], ~N[2026-06-23 07:33:27]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:27.905] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334638, itemkey: "application", value: nil, timestamp: "2026-06-22T22:43:30Z", message: "Current application version", status_log_id: 41404, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:27], updated_at: ~N[2026-06-23 07:33:27]}} [2026-06-23 07:33:27.908] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=2.1ms idle=60.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:27], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:33:27.908] [WARN ] Unexpected async result [2026-06-23 07:33:27.908] [WARN ] Unexpected async result [2026-06-23 07:33:27.917] [DEBUG] QUERY OK source="tms_terminals" db=9.3ms idle=7.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:33:27.918] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:33:48.488] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:33:48.488] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:43:52Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:43:52Z","value":"56"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:43:52Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:43:52Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:43:52Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:43:52Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:43:52Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:43:52Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:43:52Z","vendor":"MoreFun"} [2026-06-23 07:33:48.489] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:52Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:52Z", "value" => "56"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:52Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:52Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:52Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:52Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:52Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:52Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:43:52Z", "vendor" => "MoreFun"} [2026-06-23 07:33:48.489] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:33:48.489] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:33:48.489] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:33:48.498] [DEBUG] QUERY OK source="parameter_templates" db=8.7ms idle=170.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:33:48.501] [DEBUG] QUERY OK source="tms_terminals" db=2.4ms queue=0.5ms idle=121.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:33:48.507] [DEBUG] QUERY OK source="parameter_template_values" db=1.5ms idle=8.2ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:48.524] [DEBUG] QUERY OK source="parameter_definitions" db=7.6ms queue=5.1ms idle=9.4ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:48.526] [DEBUG] QUERY OK source="pos_terminal" db=1.9ms idle=16.6ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:33:48.566] [DEBUG] QUERY OK source="pos_merchant" db=38.8ms idle=3.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:33:48.570] [DEBUG] QUERY OK db=0.8ms queue=3.1ms idle=1255.7ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:33:48.570] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:33:48.576] [DEBUG] QUERY OK source="pos_terminal_data" db=5.0ms idle=44.2ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:33:48.576] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:33:48.581] [DEBUG] QUERY OK source="address" db=4.5ms idle=10.3ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:33:48.581] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:33:48.585] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:33:48.721] [DEBUG] QUERY OK db=134.6ms idle=10.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "0a8b961490aa652f74cae23d96cde6e4e42f14b78b19e2ed4ce9c1c7ae019b95", 1732, 927, ~U[2026-06-23 07:33:48Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:33:48], ~N[2026-06-23 07:33:48]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:33:48.722] [INFO ] AutoPushService: Created push log 30597 for MF919 params.zip [2026-06-23 07:33:48.723] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 1732, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:33:48.724] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:33:48.724] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:33:48.725] [DEBUG] QUERY OK source="config_file_versions" db=0.6ms idle=143.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:33:48.732] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:33:48.769] [DEBUG] QUERY OK db=31.5ms idle=13.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "48162a5cfec671d953a8679e03c4c186321ad708d43e5982fb18233fecfd4295", 2595, 17947, ~U[2026-06-23 07:33:48Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:33:48], ~N[2026-06-23 07:33:48]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:33:48.769] [INFO ] AutoPushService: Created push log 30599 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:33:48.769] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 2595, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:33:48.769] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:33:48.769] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:33:48.777] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=44.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:33:48.780] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:33:48.785] [DEBUG] QUERY OK source="tms_terminals" db=4.5ms queue=0.4ms idle=13.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:33:48.785] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:33:48.790] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:33:48.790] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:48.790] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:48.798] [DEBUG] QUERY OK source="config_file_versions" db=6.7ms idle=19.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:33:48.798] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:33:48.798] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:33:48.809] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=22.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:33:48.810] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:33:48.843] [DEBUG] QUERY OK source="tms_terminals" db=22.8ms idle=22.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:33:48], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:33:48.852] [DEBUG] QUERY OK source="parameter_templates" db=4.4ms idle=38.5ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:33:48.857] [DEBUG] QUERY OK source="config_file_versions" db=3.6ms idle=10.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:33:48.857] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:33:48.881] [DEBUG] QUERY OK source="tms_terminals" db=10.4ms queue=6.7ms idle=12.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:33:48.888] [DEBUG] QUERY OK source="tms_terminals" db=6.4ms idle=24.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:48], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:33:48.914] [DEBUG] QUERY OK db=25.1ms idle=7.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:43:52Z", ~N[2026-06-23 07:33:48], ~N[2026-06-23 07:33:48]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:33:48.914] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41406, oid: "organization_id", upload_time: "2026-06-22T22:43:52Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:48], updated_at: ~N[2026-06-23 07:33:48]} [2026-06-23 07:33:48.914] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:52Z", "value" => "online"} [2026-06-23 07:33:48.951] [DEBUG] QUERY OK db=36.3ms idle=26.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:43:52Z", "online", "status", 41406, ~N[2026-06-23 07:33:48], ~N[2026-06-23 07:33:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:48.951] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334639, itemkey: "status", value: "online", timestamp: "2026-06-22T22:43:52Z", message: "Terminal status update", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:48], updated_at: ~N[2026-06-23 07:33:48]}} [2026-06-23 07:33:48.951] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:33:48.958] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:48.961] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:52Z", "value" => "56"} [2026-06-23 07:33:48.981] [DEBUG] QUERY OK db=19.6ms idle=47.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:43:52Z", "56", "battery", 41406, ~N[2026-06-23 07:33:48], ~N[2026-06-23 07:33:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:48.981] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334642, itemkey: "battery", value: "56", timestamp: "2026-06-22T22:43:52Z", message: "Battery level", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:48], updated_at: ~N[2026-06-23 07:33:48]}} [2026-06-23 07:33:48.981] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:52Z", "value" => "online"} [2026-06-23 07:33:49.024] [DEBUG] QUERY OK db=32.0ms queue=9.2ms idle=30.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:43:52Z", "online", "network", 41406, ~N[2026-06-23 07:33:48], ~N[2026-06-23 07:33:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:49.024] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334644, itemkey: "network", value: "online", timestamp: "2026-06-22T22:43:52Z", message: "Network connectivity", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:48], updated_at: ~N[2026-06-23 07:33:48]}} [2026-06-23 07:33:49.028] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:33:49.028] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:52Z", "value" => "0"} [2026-06-23 07:33:49.029] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:49.073] [DEBUG] QUERY OK db=44.1ms idle=47.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:43:52Z", "0", "cpu", 41406, ~N[2026-06-23 07:33:49], ~N[2026-06-23 07:33:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:49.085] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334646, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:43:52Z", message: "CPU usage percentage", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:49], updated_at: ~N[2026-06-23 07:33:49]}} [2026-06-23 07:33:49.085] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:52Z", "value" => "1.0.0"} [2026-06-23 07:33:49.126] [DEBUG] QUERY OK db=39.8ms queue=0.1ms idle=62.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:43:52Z", "1.0.0", "parameter_config", 41406, ~N[2026-06-23 07:33:49], ~N[2026-06-23 07:33:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:49.126] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334647, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:43:52Z", message: "Current parameters version", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:49], updated_at: ~N[2026-06-23 07:33:49]}} [2026-06-23 07:33:49.126] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:52Z", "value" => "1.0.1"} [2026-06-23 07:33:49.156] [DEBUG] QUERY OK db=29.4ms idle=53.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:43:52Z", "1.0.1", "emv_config", 41406, ~N[2026-06-23 07:33:49], ~N[2026-06-23 07:33:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:49.156] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334649, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:43:52Z", message: "Current EMV config version", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:49], updated_at: ~N[2026-06-23 07:33:49]}} [2026-06-23 07:33:49.156] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:52Z", "value" => ""} [2026-06-23 07:33:49.217] [DEBUG] QUERY OK db=57.5ms idle=33.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:43:52Z", "keys_config", 41406, ~N[2026-06-23 07:33:49], ~N[2026-06-23 07:33:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:49.217] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334651, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:43:52Z", message: "Current keys config version", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:49], updated_at: ~N[2026-06-23 07:33:49]}} [2026-06-23 07:33:49.217] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:52Z", "value" => ""} [2026-06-23 07:33:49.346] [DEBUG] QUERY OK db=116.2ms idle=71.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:43:52Z", "application", 41406, ~N[2026-06-23 07:33:49], ~N[2026-06-23 07:33:49]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:49.347] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334654, itemkey: "application", value: nil, timestamp: "2026-06-22T22:43:52Z", message: "Current application version", status_log_id: 41406, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:49], updated_at: ~N[2026-06-23 07:33:49]}} [2026-06-23 07:33:49.349] [WARN ] Unexpected async result [2026-06-23 07:33:49.349] [WARN ] Unexpected async result [2026-06-23 07:33:49.358] [DEBUG] QUERY OK source="tms_terminals" db=8.6ms queue=2.4ms idle=130.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:33:49.361] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:48]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:33:49.963] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:33:49.967] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T22:43:53Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T22:43:53Z","value":"56"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T22:43:53Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T22:43:53Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T22:43:53Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T22:43:53Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T22:43:53Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T22:43:53Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T22:43:53Z","vendor":"MoreFun"} [2026-06-23 07:33:49.968] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:53Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:53Z", "value" => "56"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:53Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:53Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:53Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:53Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:53Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:53Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T22:43:53Z", "vendor" => "MoreFun"} [2026-06-23 07:33:49.968] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:33:49.968] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:33:49.969] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:33:49.979] [DEBUG] QUERY OK source="parameter_templates" db=9.8ms idle=610.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:33:50.002] [DEBUG] QUERY OK source="tms_terminals" db=22.6ms idle=592.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:33:50.010] [DEBUG] QUERY OK source="parameter_template_values" db=6.7ms idle=24.9ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:50.018] [DEBUG] QUERY OK source="parameter_definitions" db=1.9ms queue=4.7ms idle=9.1ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:33:50.036] [DEBUG] QUERY OK source="pos_terminal" db=17.9ms idle=7.6ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:33:50.061] [DEBUG] QUERY OK source="pos_merchant" db=5.3ms queue=0.1ms idle=37.3ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:33:50.075] [DEBUG] QUERY OK db=3.8ms queue=1.0ms idle=1760.4ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:33:50.075] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:33:50.076] [DEBUG] QUERY OK source="pos_terminal_data" db=0.5ms idle=39.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:33:50.076] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:33:50.084] [DEBUG] QUERY OK source="address" db=7.6ms idle=16.2ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:33:50.084] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:33:50.154] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:33:50.241] [DEBUG] QUERY OK db=74.2ms queue=0.1ms idle=89.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "70c4e38d3c05af66312e0e1cd5fc40f72c8a2cbb3868dafa98299a43d1b6773d", 2627, 927, ~U[2026-06-23 07:33:50Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:33:50.260] [INFO ] AutoPushService: Created push log 30602 for MF919 params.zip [2026-06-23 07:33:50.260] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 2627, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:33:50.269] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:33:50.272] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:33:50.303] [DEBUG] QUERY OK source="config_file_versions" db=18.8ms queue=6.4ms idle=193.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:33:50.308] [ERROR] L3ConfigZipBuilder: Failed to read priv/static/mf919/1.0.1/YSDK_L3_configuration.xml: :enoent [2026-06-23 07:33:50.317] [ERROR] AutoPushService: L3ConfigZipBuilder failed for 98250623730001: "Failed to read YSDK_L3_configuration.xml: :enoent" [2026-06-23 07:33:50.334] [DEBUG] QUERY OK source="config_file_versions" db=16.7ms idle=76.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:33:50.334] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:33:50.358] [DEBUG] QUERY OK source="tms_terminals" db=10.9ms queue=0.1ms idle=43.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:33:50.358] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:33:50.420] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:33:50.420] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:50.420] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:33:50.439] [DEBUG] QUERY OK source="config_file_versions" db=18.7ms idle=62.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:33:50.453] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:33:50.454] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:33:50.461] [DEBUG] QUERY OK source="tms_terminals" db=6.8ms idle=14.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:33:50.467] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:33:50.472] [DEBUG] QUERY OK source="parameter_templates" db=0.6ms idle=17.4ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:33:50.473] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=11.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:33:50.473] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:33:50.475] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.8ms idle=1.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:33:50.495] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=18.6ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:50], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:33:50.544] [DEBUG] QUERY OK db=35.6ms idle=32.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T22:43:53Z", ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:33:50.544] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41408, oid: "organization_id", upload_time: "2026-06-22T22:43:53Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]} [2026-06-23 07:33:50.545] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T22:43:53Z", "value" => "online"} [2026-06-23 07:33:50.606] [DEBUG] QUERY OK db=57.4ms idle=50.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T22:43:53Z", "online", "status", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.606] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334656, itemkey: "status", value: "online", timestamp: "2026-06-22T22:43:53Z", message: "Terminal status update", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.606] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:33:50.620] [DEBUG] QUERY OK source="tms_terminals" db=12.9ms idle=62.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:50], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:33:50.620] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T22:43:53Z", "value" => "56"} [2026-06-23 07:33:50.620] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:50.657] [DEBUG] QUERY OK db=36.1ms queue=0.1ms idle=17.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T22:43:53Z", "56", "battery", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.661] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334659, itemkey: "battery", value: "56", timestamp: "2026-06-22T22:43:53Z", message: "Battery level", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.661] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T22:43:53Z", "value" => "online"} [2026-06-23 07:33:50.695] [DEBUG] QUERY OK db=33.2ms idle=41.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T22:43:53Z", "online", "network", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.699] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334661, itemkey: "network", value: "online", timestamp: "2026-06-22T22:43:53Z", message: "Network connectivity", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.699] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:33:50.716] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms queue=1.7ms idle=54.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:50], 19] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:33:50.716] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T22:43:53Z", "value" => "0"} [2026-06-23 07:33:50.720] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:33:50.756] [DEBUG] QUERY OK db=35.2ms queue=0.3ms idle=25.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T22:43:53Z", "0", "cpu", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.765] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334663, itemkey: "cpu", value: "0", timestamp: "2026-06-22T22:43:53Z", message: "CPU usage percentage", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.778] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T22:43:53Z", "value" => "1.0.0"} [2026-06-23 07:33:50.824] [DEBUG] QUERY OK db=44.4ms idle=62.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T22:43:53Z", "1.0.0", "parameter_config", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.825] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334665, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T22:43:53Z", message: "Current parameters version", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.825] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T22:43:53Z", "value" => "1.0.1"} [2026-06-23 07:33:50.867] [DEBUG] QUERY OK db=35.9ms queue=5.2ms idle=69.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T22:43:53Z", "1.0.1", "emv_config", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.867] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334667, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T22:43:53Z", message: "Current EMV config version", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.867] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T22:43:53Z", "value" => ""} [2026-06-23 07:33:50.902] [DEBUG] QUERY OK db=29.4ms queue=4.4ms idle=44.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T22:43:53Z", "keys_config", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.904] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334669, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T22:43:53Z", message: "Current keys config version", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.904] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T22:43:53Z", "value" => ""} [2026-06-23 07:33:50.935] [DEBUG] QUERY OK db=30.7ms idle=38.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T22:43:53Z", "application", 41408, ~N[2026-06-23 07:33:50], ~N[2026-06-23 07:33:50]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:33:50.938] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334670, itemkey: "application", value: nil, timestamp: "2026-06-22T22:43:53Z", message: "Current application version", status_log_id: 41408, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:33:50], updated_at: ~N[2026-06-23 07:33:50]}} [2026-06-23 07:33:50.939] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=0.2ms idle=36.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:33:50], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:33:50.939] [WARN ] Unexpected async result [2026-06-23 07:33:50.942] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms queue=0.1ms idle=4.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:33:50.943] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 06:54:27]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:35:33.323] [INFO ] Received status update for terminal 98251226730002 [2026-06-23 07:35:33.323] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:34:41Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:34:41Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:34:41Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:34:41Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T07:34:41Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T07:34:41Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T07:34:41Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T07:34:41Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-06-23T07:34:41Z","vendor":"MoreFun"} [2026-06-23 07:35:33.325] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:34:41Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:34:41Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:34:41Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:34:41Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:34:41Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:34:41Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:34:41Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:34:41Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-06-23T07:34:41Z", "vendor" => "MoreFun"} [2026-06-23 07:35:33.325] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:35:33.325] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-06-23 07:35:33.326] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-06-23 07:35:33.331] [DEBUG] QUERY OK source="parameter_templates" db=4.9ms idle=930.5ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:35:33.336] [DEBUG] QUERY OK source="tms_terminals" db=4.4ms queue=0.1ms idle=27.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:35:33.349] [DEBUG] QUERY OK source="parameter_template_values" db=1.1ms idle=17.4ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:35:33.354] [DEBUG] QUERY OK source="parameter_definitions" db=1.4ms queue=2.0ms idle=14.3ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:35:33.357] [DEBUG] QUERY OK source="pos_terminal" db=0.4ms idle=7.2ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:35:33.395] [DEBUG] QUERY OK source="pos_merchant" db=37.3ms idle=4.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [106] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:35:33.397] [DEBUG] QUERY OK db=0.6ms queue=0.9ms idle=1063.5ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["372916040000000"] [2026-06-23 07:35:33.397] [INFO ] ParamsZipBuilder: Merchant info for merchantid=372916040000000 - business_name=tic tac, QR_USE_SSL=0, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:35:33.398] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms queue=0.2ms idle=2.3ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["91604486"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:35:33.399] [DEBUG] QUERY OK source="address" db=0.3ms idle=0.8ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [300] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:35:33.399] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730002, pos_merchant.merchantid="372916040000000" [2026-06-23 07:35:33.402] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730002 at priv/ota/98251226730002/params.zip [2026-06-23 07:35:33.456] [DEBUG] QUERY OK db=53.8ms idle=2.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a00d7a1574b93907aac7403298e720f25a1f099c8b6da2c9b7b01e5a2899babd", 8866, 940, ~U[2026-06-23 07:35:33Z], "priv/ota/98251226730002/params.zip", 13, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:35:33], ~N[2026-06-23 07:35:33]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:35:33.457] [INFO ] AutoPushService: Created push log 30605 for MF919 params.zip [2026-06-23 07:35:33.457] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/params.zip", "requestId" => 8866, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:35:33.457] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:35:33.458] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730002 [2026-06-23 07:35:33.459] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=56.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:35:33.468] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:35:33.518] [DEBUG] QUERY OK db=49.2ms idle=12.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "20d46c91ebe46b120eaafef06f565b5bfe0bb1d250c47e49b2013e3149dcef9f", 2691, 17947, ~U[2026-06-23 07:35:33Z], "priv/ota/98251226730002/l3config.zip", 13, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:35:33], ~N[2026-06-23 07:35:33]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:35:33.519] [INFO ] AutoPushService: Created push log 30607 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:35:33.519] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/l3config.zip", "requestId" => 2691, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:35:33.519] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:35:33.519] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-06-23 07:35:33.541] [DEBUG] QUERY OK source="config_file_versions" db=21.7ms idle=60.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:35:33.541] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-06-23 07:35:33.547] [DEBUG] QUERY OK source="tms_terminals" db=3.4ms idle=25.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:35:33.547] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:35:33.552] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:35:33.554] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:35:33.554] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:35:33.558] [DEBUG] QUERY OK source="config_file_versions" db=1.7ms idle=13.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:35:33.558] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:35:33.558] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-06-23 07:35:33.561] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=1.0ms idle=11.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:35:33.565] [INFO ] Terminal updated: 98251226730002 [2026-06-23 07:35:33.592] [DEBUG] QUERY OK source="tms_terminals" db=27.2ms idle=8.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:35:33], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:35:33.596] [DEBUG] QUERY OK source="parameter_templates" db=2.6ms idle=31.5ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:35:33.602] [DEBUG] QUERY OK source="config_file_versions" db=5.8ms idle=3.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:35:33.603] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-06-23 07:35:33.606] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=7.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:35:33.664] [DEBUG] QUERY OK source="tms_terminals" db=57.6ms idle=4.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:35:33], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:35:33.743] [DEBUG] QUERY OK db=77.5ms idle=58.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [13, "organization_id", "2026-06-23T07:34:41Z", ~N[2026-06-23 07:35:33], ~N[2026-06-23 07:35:33]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:35:33.743] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41410, oid: "organization_id", upload_time: "2026-06-23T07:34:41Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:33], updated_at: ~N[2026-06-23 07:35:33]} [2026-06-23 07:35:33.743] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:34:41Z", "value" => "online"} [2026-06-23 07:35:33.831] [DEBUG] QUERY OK db=76.3ms queue=0.4ms idle=88.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:34:41Z", "online", "status", 41410, ~N[2026-06-23 07:35:33], ~N[2026-06-23 07:35:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:33.831] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334672, itemkey: "status", value: "online", timestamp: "2026-06-23T07:34:41Z", message: "Terminal status update", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:33], updated_at: ~N[2026-06-23 07:35:33]}} [2026-06-23 07:35:33.832] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-06-23 07:35:33.834] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:34:41Z", "value" => "55"} [2026-06-23 07:35:33.834] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:35:33.912] [DEBUG] QUERY OK db=74.6ms queue=3.2ms idle=91.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:34:41Z", "55", "battery", 41410, ~N[2026-06-23 07:35:33], ~N[2026-06-23 07:35:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:33.914] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334674, itemkey: "battery", value: "55", timestamp: "2026-06-23T07:34:41Z", message: "Battery level", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:33], updated_at: ~N[2026-06-23 07:35:33]}} [2026-06-23 07:35:33.914] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:34:41Z", "value" => "online"} [2026-06-23 07:35:33.977] [DEBUG] QUERY OK db=60.3ms idle=87.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:34:41Z", "online", "network", 41410, ~N[2026-06-23 07:35:33], ~N[2026-06-23 07:35:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:33.977] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334676, itemkey: "network", value: "online", timestamp: "2026-06-23T07:34:41Z", message: "Network connectivity", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:33], updated_at: ~N[2026-06-23 07:35:33]}} [2026-06-23 07:35:33.977] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-06-23 07:35:33.979] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:35:33.978] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:34:41Z", "value" => "0"} [2026-06-23 07:35:34.061] [DEBUG] QUERY OK db=75.0ms idle=70.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:34:41Z", "0", "cpu", 41410, ~N[2026-06-23 07:35:33], ~N[2026-06-23 07:35:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:34.062] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334678, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:34:41Z", message: "CPU usage percentage", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:33], updated_at: ~N[2026-06-23 07:35:33]}} [2026-06-23 07:35:34.066] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:34:41Z", "value" => "1.0.0"} [2026-06-23 07:35:34.303] [DEBUG] QUERY OK db=233.4ms idle=92.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T07:34:41Z", "1.0.0", "parameter_config", 41410, ~N[2026-06-23 07:35:34], ~N[2026-06-23 07:35:34]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:34.304] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334680, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T07:34:41Z", message: "Current parameters version", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:34], updated_at: ~N[2026-06-23 07:35:34]}} [2026-06-23 07:35:34.304] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:34:41Z", "value" => "1.0.1"} [2026-06-23 07:35:34.534] [DEBUG] QUERY OK db=227.1ms queue=1.3ms idle=246.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T07:34:41Z", "1.0.1", "emv_config", 41410, ~N[2026-06-23 07:35:34], ~N[2026-06-23 07:35:34]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:34.534] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334682, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T07:34:41Z", message: "Current EMV config version", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:34], updated_at: ~N[2026-06-23 07:35:34]}} [2026-06-23 07:35:34.535] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:34:41Z", "value" => ""} [2026-06-23 07:35:36.193] [DEBUG] QUERY OK db=1658.2ms idle=86.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T07:34:41Z", "keys_config", 41410, ~N[2026-06-23 07:35:34], ~N[2026-06-23 07:35:34]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:36.194] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334683, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T07:34:41Z", message: "Current keys config version", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:34], updated_at: ~N[2026-06-23 07:35:34]}} [2026-06-23 07:35:36.194] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:34:41Z", "value" => ""} [2026-06-23 07:35:37.062] [DEBUG] QUERY OK db=867.8ms idle=740.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T07:34:41Z", "application", 41410, ~N[2026-06-23 07:35:36], ~N[2026-06-23 07:35:36]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:37.063] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334685, itemkey: "application", value: nil, timestamp: "2026-06-23T07:34:41Z", message: "Current application version", status_log_id: 41410, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:36], updated_at: ~N[2026-06-23 07:35:36]}} [2026-06-23 07:35:37.064] [WARN ] Unexpected async result [2026-06-23 07:35:37.064] [WARN ] Unexpected async result [2026-06-23 07:35:37.067] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.2ms idle=254.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:35:37.067] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:30:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:35:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:35:55.205] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 07:35:55.205] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T11:35:53Z","org.device":[{"itemkey":"battery","value":5,"timestamp":"2026-06-23T11:35:53Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T11:35:53Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T11:35:53Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T11:35:53Z","message":""}]} [2026-06-23 07:35:55.205] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:35:53Z", "value" => 5}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:35:53Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:35:53Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:35:53Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T11:35:53Z"} [2026-06-23 07:35:55.205] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 07:35:55.207] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=1316.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:35:55.207] [INFO ] Terminal updated: 61250424798001 [2026-06-23 07:35:55.656] [DEBUG] QUERY OK source="tms_terminals" db=449.1ms idle=311.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:35:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:35:55.657] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=450.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:35:55.737] [DEBUG] QUERY OK source="tms_terminals" db=78.8ms idle=1.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:35:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:35:55.858] [DEBUG] QUERY OK db=120.6ms idle=79.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T11:35:53Z", ~N[2026-06-23 07:35:55], ~N[2026-06-23 07:35:55]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:35:55.858] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41412, oid: "org-id-placeholder", upload_time: "2026-06-23T11:35:53Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:55], updated_at: ~N[2026-06-23 07:35:55]} [2026-06-23 07:35:55.859] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:35:53Z", "value" => 5} [2026-06-23 07:35:55.947] [DEBUG] QUERY OK db=85.6ms queue=1.3ms idle=123.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:35:53Z", "5", "battery", 41412, ~N[2026-06-23 07:35:55], ~N[2026-06-23 07:35:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:55.948] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334688, itemkey: "battery", value: "5", timestamp: "2026-06-23T11:35:53Z", message: nil, status_log_id: 41412, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:55], updated_at: ~N[2026-06-23 07:35:55]}} [2026-06-23 07:35:55.949] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:35:53Z", "value" => 50} [2026-06-23 07:35:56.011] [DEBUG] QUERY OK db=61.4ms idle=50.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T11:35:53Z", "50", "memory", 41412, ~N[2026-06-23 07:35:55], ~N[2026-06-23 07:35:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:56.011] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334690, itemkey: "memory", value: "50", timestamp: "2026-06-23T11:35:53Z", message: "Normal", status_log_id: 41412, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:55], updated_at: ~N[2026-06-23 07:35:55]}} [2026-06-23 07:35:56.011] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:35:53Z", "value" => 50} [2026-06-23 07:35:56.107] [DEBUG] QUERY OK db=95.7ms idle=64.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:35:53Z", "50", "cpu", 41412, ~N[2026-06-23 07:35:56], ~N[2026-06-23 07:35:56]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:56.108] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334692, itemkey: "cpu", value: "50", timestamp: "2026-06-23T11:35:53Z", message: nil, status_log_id: 41412, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:56], updated_at: ~N[2026-06-23 07:35:56]}} [2026-06-23 07:35:56.108] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:35:53Z", "value" => "online"} [2026-06-23 07:35:56.181] [DEBUG] QUERY OK db=72.0ms queue=1.1ms idle=97.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:35:53Z", "online", "network", 41412, ~N[2026-06-23 07:35:56], ~N[2026-06-23 07:35:56]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:35:56.182] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334694, itemkey: "network", value: "online", timestamp: "2026-06-23T11:35:53Z", message: nil, status_log_id: 41412, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:35:56], updated_at: ~N[2026-06-23 07:35:56]}} [2026-06-23 07:35:56.182] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 07:35:56.186] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:35:56.188] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=79.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:35:56.190] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:35:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:35:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:36:01.037] [INFO ] Received status update for terminal 98251226730002 [2026-06-23 07:36:01.038] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:35:08Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:35:08Z","value":"55"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:35:08Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:35:08Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T07:35:08Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T07:35:08Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T07:35:08Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T07:35:08Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-06-23T07:35:08Z","vendor":"MoreFun"} [2026-06-23 07:36:01.038] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:35:08Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:35:08Z", "value" => "55"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:35:08Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:35:08Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:35:08Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:35:08Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:35:08Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:35:08Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-06-23T07:35:08Z", "vendor" => "MoreFun"} [2026-06-23 07:36:01.038] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:36:01.038] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-06-23 07:36:01.038] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-06-23 07:36:01.039] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=691.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:36:01.040] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=116.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:36:01.041] [DEBUG] QUERY OK source="parameter_template_values" db=0.7ms queue=0.2ms idle=1.3ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:36:01.043] [DEBUG] QUERY OK source="parameter_definitions" db=1.0ms queue=0.5ms idle=1.5ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:36:01.046] [DEBUG] QUERY OK source="pos_terminal" db=1.5ms idle=2.9ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:36:01.085] [DEBUG] QUERY OK source="pos_merchant" db=38.3ms queue=0.5ms idle=2.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [106] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:36:01.088] [DEBUG] QUERY OK db=1.3ms queue=1.4ms idle=1732.9ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["372916040000000"] [2026-06-23 07:36:01.089] [INFO ] ParamsZipBuilder: Merchant info for merchantid=372916040000000 - business_name=tic tac, QR_USE_SSL=0, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:36:01.092] [DEBUG] QUERY OK source="pos_terminal_data" db=2.0ms idle=44.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["91604486"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:36:01.093] [DEBUG] QUERY OK source="address" db=0.6ms idle=7.6ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [300] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:36:01.093] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730002, pos_merchant.merchantid="372916040000000" [2026-06-23 07:36:01.117] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730002 at priv/ota/98251226730002/params.zip [2026-06-23 07:36:01.257] [DEBUG] QUERY OK db=134.8ms queue=0.1ms idle=29.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "07a77b8f16ae0464e5bbbb77c250975e3a8eff8f3151fd576474cd5398fe529e", 2851, 940, ~U[2026-06-23 07:36:01Z], "priv/ota/98251226730002/params.zip", 13, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:36:01.263] [INFO ] AutoPushService: Created push log 30608 for MF919 params.zip [2026-06-23 07:36:01.266] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/params.zip", "requestId" => 2851, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:36:01.266] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:36:01.266] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730002 [2026-06-23 07:36:01.279] [DEBUG] QUERY OK source="config_file_versions" db=12.4ms idle=172.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:36:01.296] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:36:01.404] [DEBUG] QUERY OK db=100.1ms queue=1.8ms idle=45.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "420de6a6729659dfbaf3a11a25b7321f176d8111a032a052febd33dd536be9d5", 1956, 17947, ~U[2026-06-23 07:36:01Z], "priv/ota/98251226730002/l3config.zip", 13, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:36:01.410] [INFO ] AutoPushService: Created push log 30611 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:36:01.410] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/l3config.zip", "requestId" => 1956, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:36:01.410] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:36:01.410] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-06-23 07:36:01.414] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms queue=1.9ms idle=132.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:36:01.414] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-06-23 07:36:01.431] [DEBUG] QUERY OK source="tms_terminals" db=8.7ms queue=2.7ms idle=15.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:36:01.432] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:36:01.452] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:36:01.454] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:36:01.461] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:36:01.462] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms queue=0.3ms idle=46.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:36:01.463] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:36:01.473] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-06-23 07:36:01.479] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=46.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:36:01.479] [INFO ] Terminal updated: 98251226730002 [2026-06-23 07:36:01.499] [DEBUG] QUERY OK source="parameter_templates" db=12.3ms idle=17.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:36:01.503] [DEBUG] QUERY OK source="config_file_versions" db=3.2ms idle=20.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:36:01.503] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-06-23 07:36:01.516] [DEBUG] QUERY OK source="tms_terminals" db=12.4ms idle=11.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:36:01.551] [DEBUG] QUERY OK source="tms_terminals" db=34.3ms idle=13.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:36:01], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:36:01.613] [DEBUG] QUERY OK db=58.8ms idle=38.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [13, "organization_id", "2026-06-23T07:35:08Z", ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:36:01.614] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41414, oid: "organization_id", upload_time: "2026-06-23T07:35:08Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:01], updated_at: ~N[2026-06-23 07:36:01]} [2026-06-23 07:36:01.615] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:35:08Z", "value" => "online"} [2026-06-23 07:36:01.680] [DEBUG] QUERY OK db=59.7ms queue=4.7ms idle=64.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:35:08Z", "online", "status", 41414, ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:01.682] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334696, itemkey: "status", value: "online", timestamp: "2026-06-23T07:35:08Z", message: "Terminal status update", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:01], updated_at: ~N[2026-06-23 07:36:01]}} [2026-06-23 07:36:01.682] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-06-23 07:36:01.691] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms queue=4.5ms idle=76.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:36:01], 13] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:36:01.695] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:35:08Z", "value" => "55"} [2026-06-23 07:36:01.695] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:36:01.739] [DEBUG] QUERY OK db=43.8ms idle=15.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:35:08Z", "55", "battery", 41414, ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:01.741] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334698, itemkey: "battery", value: "55", timestamp: "2026-06-23T07:35:08Z", message: "Battery level", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:01], updated_at: ~N[2026-06-23 07:36:01]}} [2026-06-23 07:36:01.741] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:35:08Z", "value" => "online"} [2026-06-23 07:36:01.836] [DEBUG] QUERY OK db=93.8ms idle=50.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:35:08Z", "online", "network", 41414, ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:01.840] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334700, itemkey: "network", value: "online", timestamp: "2026-06-23T07:35:08Z", message: "Network connectivity", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:01], updated_at: ~N[2026-06-23 07:36:01]}} [2026-06-23 07:36:01.840] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-06-23 07:36:01.849] [DEBUG] QUERY OK source="tms_terminals" db=3.3ms queue=5.3ms idle=101.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:36:01], 13] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:36:01.849] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:36:01.849] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:35:08Z", "value" => "0"} [2026-06-23 07:36:01.929] [DEBUG] QUERY OK db=73.4ms idle=20.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:35:08Z", "0", "cpu", 41414, ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:01.931] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334702, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:35:08Z", message: "CPU usage percentage", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:01], updated_at: ~N[2026-06-23 07:36:01]}} [2026-06-23 07:36:01.931] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:35:08Z", "value" => "1.0.0"} [2026-06-23 07:36:02.006] [DEBUG] QUERY OK db=73.8ms queue=0.5ms idle=2.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T07:35:08Z", "1.0.0", "parameter_config", 41414, ~N[2026-06-23 07:36:01], ~N[2026-06-23 07:36:01]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:02.007] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334704, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T07:35:08Z", message: "Current parameters version", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:01], updated_at: ~N[2026-06-23 07:36:01]}} [2026-06-23 07:36:02.007] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:35:08Z", "value" => "1.0.1"} [2026-06-23 07:36:02.065] [DEBUG] QUERY OK db=56.1ms queue=0.4ms idle=78.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T07:35:08Z", "1.0.1", "emv_config", 41414, ~N[2026-06-23 07:36:02], ~N[2026-06-23 07:36:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:02.065] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334706, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T07:35:08Z", message: "Current EMV config version", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:02], updated_at: ~N[2026-06-23 07:36:02]}} [2026-06-23 07:36:02.066] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:35:08Z", "value" => ""} [2026-06-23 07:36:02.182] [DEBUG] QUERY OK db=100.2ms queue=8.9ms idle=66.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T07:35:08Z", "keys_config", 41414, ~N[2026-06-23 07:36:02], ~N[2026-06-23 07:36:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:02.182] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334708, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T07:35:08Z", message: "Current keys config version", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:02], updated_at: ~N[2026-06-23 07:36:02]}} [2026-06-23 07:36:02.182] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:35:08Z", "value" => ""} [2026-06-23 07:36:02.293] [DEBUG] QUERY OK db=99.5ms queue=11.0ms idle=118.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T07:35:08Z", "application", 41414, ~N[2026-06-23 07:36:02], ~N[2026-06-23 07:36:02]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:02.294] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334710, itemkey: "application", value: nil, timestamp: "2026-06-23T07:35:08Z", message: "Current application version", status_log_id: 41414, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:02], updated_at: ~N[2026-06-23 07:36:02]}} [2026-06-23 07:36:02.411] [DEBUG] QUERY OK source="tms_terminals" db=113.4ms queue=0.1ms idle=115.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:36:02], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:36:02.411] [WARN ] Unexpected async result [2026-06-23 07:36:02.411] [WARN ] Unexpected async result [2026-06-23 07:36:02.413] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=117.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:36:02.414] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:35:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:36:02]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:36:29.218] [INFO ] Received status update for terminal 98251226730002 [2026-06-23 07:36:29.218] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:35:37Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:35:37Z","value":"54"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:35:37Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:35:37Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T07:35:37Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T07:35:37Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T07:35:37Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T07:35:37Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-06-23T07:35:37Z","vendor":"MoreFun"} [2026-06-23 07:36:29.218] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:35:37Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:35:37Z", "value" => "54"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:35:37Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:35:37Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:35:37Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:35:37Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:35:37Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:35:37Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-06-23T07:35:37Z", "vendor" => "MoreFun"} [2026-06-23 07:36:29.218] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:36:29.218] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-06-23 07:36:29.219] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-06-23 07:36:29.221] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms queue=0.1ms idle=1049.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:36:29.223] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=47.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:36:29.223] [DEBUG] QUERY OK source="parameter_template_values" db=0.6ms idle=2.2ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:36:29.225] [DEBUG] QUERY OK source="parameter_definitions" db=0.9ms queue=0.3ms idle=1.2ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:36:29.227] [DEBUG] QUERY OK source="pos_terminal" db=1.3ms idle=2.5ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:36:29.265] [DEBUG] QUERY OK source="pos_merchant" db=37.9ms idle=2.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [106] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:36:29.280] [DEBUG] QUERY OK db=10.8ms queue=3.3ms idle=1896.1ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["372916040000000"] [2026-06-23 07:36:29.280] [INFO ] ParamsZipBuilder: Merchant info for merchantid=372916040000000 - business_name=tic tac, QR_USE_SSL=0, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:36:29.286] [DEBUG] QUERY OK source="pos_terminal_data" db=5.6ms queue=0.1ms idle=53.0ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["91604486"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:36:29.287] [DEBUG] QUERY OK source="address" db=0.4ms idle=21.0ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [300] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:36:29.288] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730002, pos_merchant.merchantid="372916040000000" [2026-06-23 07:36:29.293] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730002 at priv/ota/98251226730002/params.zip [2026-06-23 07:36:29.351] [DEBUG] QUERY OK db=55.7ms idle=8.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "4646e1a86f1eb8010afda96b5946c54470ddfc765b31e9809060e751fc1a08ab", 2979, 940, ~U[2026-06-23 07:36:29Z], "priv/ota/98251226730002/params.zip", 13, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:36:29.351] [INFO ] AutoPushService: Created push log 30612 for MF919 params.zip [2026-06-23 07:36:29.352] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/params.zip", "requestId" => 2979, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:36:29.352] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:36:29.352] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730002 [2026-06-23 07:36:29.356] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms queue=0.2ms idle=65.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:36:29.373] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:36:29.419] [DEBUG] QUERY OK db=44.4ms idle=23.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "63839ab5d988c84e4c3da5e91f1fb2e93e64034dff392b7e5a8602dfa1521962", 2084, 17947, ~U[2026-06-23 07:36:29Z], "priv/ota/98251226730002/l3config.zip", 13, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:36:29.424] [INFO ] AutoPushService: Created push log 30614 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:36:29.424] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/l3config.zip", "requestId" => 2084, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:36:29.424] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:36:29.433] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-06-23 07:36:29.436] [DEBUG] QUERY OK source="config_file_versions" db=3.3ms idle=76.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:36:29.436] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-06-23 07:36:29.444] [DEBUG] QUERY OK source="tms_terminals" db=7.7ms idle=17.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:36:29.444] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:36:29.448] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:36:29.448] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:36:29.450] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:36:29.459] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms queue=7.0ms idle=14.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:36:29.461] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:36:29.461] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-06-23 07:36:29.463] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=17.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:36:29.463] [INFO ] Terminal updated: 98251226730002 [2026-06-23 07:36:29.495] [DEBUG] QUERY OK source="tms_terminals" db=31.7ms idle=4.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:36:29], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:36:29.502] [DEBUG] QUERY OK source="parameter_templates" db=7.1ms idle=32.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:36:29.507] [DEBUG] QUERY OK source="config_file_versions" db=1.0ms idle=11.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:36:29.508] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-06-23 07:36:29.518] [DEBUG] QUERY OK source="tms_terminals" db=9.8ms idle=5.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:36:29.545] [DEBUG] QUERY OK source="tms_terminals" db=26.8ms idle=10.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:36:29], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:36:29.598] [DEBUG] QUERY OK db=52.0ms idle=28.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [13, "organization_id", "2026-06-23T07:35:37Z", ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:36:29.600] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41415, oid: "organization_id", upload_time: "2026-06-23T07:35:37Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]} [2026-06-23 07:36:29.600] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:35:37Z", "value" => "online"} [2026-06-23 07:36:29.650] [DEBUG] QUERY OK db=48.7ms idle=55.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:35:37Z", "online", "status", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.650] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334711, itemkey: "status", value: "online", timestamp: "2026-06-23T07:35:37Z", message: "Terminal status update", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.650] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-06-23 07:36:29.650] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:35:37Z", "value" => "54"} [2026-06-23 07:36:29.651] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:36:29.709] [DEBUG] QUERY OK db=58.4ms idle=52.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:35:37Z", "54", "battery", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.710] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334713, itemkey: "battery", value: "54", timestamp: "2026-06-23T07:35:37Z", message: "Battery level", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.710] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:35:37Z", "value" => "online"} [2026-06-23 07:36:29.752] [DEBUG] QUERY OK db=39.4ms idle=63.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:35:37Z", "online", "network", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.752] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334715, itemkey: "network", value: "online", timestamp: "2026-06-23T07:35:37Z", message: "Network connectivity", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.756] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-06-23 07:36:29.757] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:36:29.757] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:35:37Z", "value" => "0"} [2026-06-23 07:36:29.801] [DEBUG] QUERY OK db=43.0ms idle=49.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:35:37Z", "0", "cpu", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.801] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334717, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:35:37Z", message: "CPU usage percentage", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.802] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:35:37Z", "value" => "1.0.0"} [2026-06-23 07:36:29.844] [DEBUG] QUERY OK db=41.7ms queue=0.3ms idle=49.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T07:35:37Z", "1.0.0", "parameter_config", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.845] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334719, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T07:35:37Z", message: "Current parameters version", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.845] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:35:37Z", "value" => "1.0.1"} [2026-06-23 07:36:29.895] [DEBUG] QUERY OK db=44.2ms queue=0.4ms idle=49.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T07:35:37Z", "1.0.1", "emv_config", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.895] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334721, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T07:35:37Z", message: "Current EMV config version", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.895] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:35:37Z", "value" => ""} [2026-06-23 07:36:29.938] [DEBUG] QUERY OK db=42.4ms idle=51.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T07:35:37Z", "keys_config", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.938] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334723, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T07:35:37Z", message: "Current keys config version", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.939] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:35:37Z", "value" => ""} [2026-06-23 07:36:29.979] [DEBUG] QUERY OK db=40.5ms idle=43.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T07:35:37Z", "application", 41415, ~N[2026-06-23 07:36:29], ~N[2026-06-23 07:36:29]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:36:29.980] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334725, itemkey: "application", value: nil, timestamp: "2026-06-23T07:35:37Z", message: "Current application version", status_log_id: 41415, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:36:29], updated_at: ~N[2026-06-23 07:36:29]}} [2026-06-23 07:36:29.981] [WARN ] Unexpected async result [2026-06-23 07:36:29.981] [WARN ] Unexpected async result [2026-06-23 07:36:29.985] [DEBUG] QUERY OK source="tms_terminals" db=3.4ms idle=43.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:36:29.987] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:35:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:36:29]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:37:04.927] [INFO ] Received status update for terminal 98251226730002 [2026-06-23 07:37:04.927] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:36:12Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:36:12Z","value":"54"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:36:12Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:36:12Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T07:36:12Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T07:36:12Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T07:36:12Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T07:36:12Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-06-23T07:36:12Z","vendor":"MoreFun"} [2026-06-23 07:37:04.928] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:36:12Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:36:12Z", "value" => "54"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:36:12Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:36:12Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:36:12Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:36:12Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:36:12Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:36:12Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-06-23T07:36:12Z", "vendor" => "MoreFun"} [2026-06-23 07:37:04.928] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:37:04.928] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-06-23 07:37:04.928] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-06-23 07:37:04.955] [DEBUG] QUERY OK source="parameter_templates" db=7.8ms idle=1518.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:37:04.965] [DEBUG] QUERY OK source="tms_terminals" db=9.7ms idle=514.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:37:04.967] [DEBUG] QUERY OK source="parameter_template_values" db=1.6ms idle=10.4ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:37:04.988] [DEBUG] QUERY OK source="parameter_definitions" db=5.1ms queue=14.8ms idle=2.4ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:37:05.013] [DEBUG] QUERY OK source="pos_terminal" db=4.5ms queue=2.3ms idle=39.0ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:37:05.031] [DEBUG] QUERY OK source="pos_merchant" db=17.6ms idle=25.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [106] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:37:05.038] [DEBUG] QUERY OK db=2.8ms queue=4.0ms idle=636.7ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["372916040000000"] [2026-06-23 07:37:05.039] [INFO ] ParamsZipBuilder: Merchant info for merchantid=372916040000000 - business_name=tic tac, QR_USE_SSL=0, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:37:05.059] [DEBUG] QUERY OK source="pos_terminal_data" db=3.2ms idle=42.6ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["91604486"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:37:05.062] [DEBUG] QUERY OK source="address" db=2.7ms idle=28.2ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [300] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:37:05.063] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730002, pos_merchant.merchantid="372916040000000" [2026-06-23 07:37:05.070] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730002 at priv/ota/98251226730002/params.zip [2026-06-23 07:37:05.137] [DEBUG] QUERY OK db=62.5ms idle=14.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "f1c0ea6d5bda705afdf60afe2da0608c05ecea86a3da23ce95c74892dda1c834", 3075, 940, ~U[2026-06-23 07:37:05Z], "priv/ota/98251226730002/params.zip", 13, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:37:05.139] [INFO ] AutoPushService: Created push log 30616 for MF919 params.zip [2026-06-23 07:37:05.139] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/params.zip", "requestId" => 3075, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:37:05.139] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:37:05.140] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730002 [2026-06-23 07:37:05.158] [DEBUG] QUERY OK source="config_file_versions" db=18.4ms idle=77.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:37:05.261] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:37:05.322] [DEBUG] QUERY OK db=57.7ms idle=128.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "5d49c59224810b53053dddddfac7ee0ffcce18657d0287a1f348eeb71faf6c84", 8962, 17947, ~U[2026-06-23 07:37:05Z], "priv/ota/98251226730002/l3config.zip", 13, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:37:05.322] [INFO ] AutoPushService: Created push log 30619 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:37:05.322] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/l3config.zip", "requestId" => 8962, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:37:05.323] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:37:05.358] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-06-23 07:37:05.364] [DEBUG] QUERY OK source="config_file_versions" db=6.0ms idle=199.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:37:05.364] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-06-23 07:37:05.375] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms queue=2.1ms idle=47.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:37:05.376] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:37:05.394] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:37:05.394] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:37:05.404] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:37:05.414] [DEBUG] QUERY OK source="config_file_versions" db=3.0ms queue=0.2ms idle=46.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:37:05.422] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:37:05.422] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-06-23 07:37:05.423] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=47.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:37:05.426] [INFO ] Terminal updated: 98251226730002 [2026-06-23 07:37:05.437] [DEBUG] QUERY OK source="tms_terminals" db=9.3ms idle=12.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:37:05], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:37:05.442] [DEBUG] QUERY OK source="parameter_templates" db=3.1ms idle=15.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:37:05.448] [DEBUG] QUERY OK source="config_file_versions" db=5.5ms idle=0.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:37:05.457] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-06-23 07:37:05.463] [DEBUG] QUERY OK source="tms_terminals" db=5.1ms idle=9.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:37:05.483] [DEBUG] QUERY OK source="tms_terminals" db=19.5ms idle=9.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:37:05], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:37:05.511] [DEBUG] QUERY OK db=21.6ms queue=0.1ms idle=26.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [13, "organization_id", "2026-06-23T07:36:12Z", ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:37:05.511] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41418, oid: "organization_id", upload_time: "2026-06-23T07:36:12Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]} [2026-06-23 07:37:05.511] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:36:12Z", "value" => "online"} [2026-06-23 07:37:05.578] [DEBUG] QUERY OK db=59.3ms idle=35.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:36:12Z", "online", "status", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.578] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334728, itemkey: "status", value: "online", timestamp: "2026-06-23T07:36:12Z", message: "Terminal status update", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.578] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-06-23 07:37:05.579] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:36:12Z", "value" => "54"} [2026-06-23 07:37:05.579] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:37:05.616] [DEBUG] QUERY OK db=35.1ms queue=1.7ms idle=67.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:36:12Z", "54", "battery", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.617] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334730, itemkey: "battery", value: "54", timestamp: "2026-06-23T07:36:12Z", message: "Battery level", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.618] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:36:12Z", "value" => "online"} [2026-06-23 07:37:05.663] [DEBUG] QUERY OK db=43.7ms idle=40.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:36:12Z", "online", "network", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.663] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334732, itemkey: "network", value: "online", timestamp: "2026-06-23T07:36:12Z", message: "Network connectivity", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.663] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-06-23 07:37:05.677] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:37:05.678] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:36:12Z", "value" => "0"} [2026-06-23 07:37:05.724] [DEBUG] QUERY OK db=45.6ms queue=0.1ms idle=62.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:36:12Z", "0", "cpu", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.724] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334735, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:36:12Z", message: "CPU usage percentage", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.725] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:36:12Z", "value" => "1.0.0"} [2026-06-23 07:37:05.766] [DEBUG] QUERY OK db=40.9ms idle=62.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T07:36:12Z", "1.0.0", "parameter_config", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.767] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334737, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T07:36:12Z", message: "Current parameters version", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.767] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:36:12Z", "value" => "1.0.1"} [2026-06-23 07:37:05.802] [DEBUG] QUERY OK db=34.5ms idle=43.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T07:36:12Z", "1.0.1", "emv_config", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.804] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334739, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T07:36:12Z", message: "Current EMV config version", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.804] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:36:12Z", "value" => ""} [2026-06-23 07:37:05.844] [DEBUG] QUERY OK db=35.5ms queue=1.2ms idle=40.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T07:36:12Z", "keys_config", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.847] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334741, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T07:36:12Z", message: "Current keys config version", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.848] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:36:12Z", "value" => ""} [2026-06-23 07:37:05.868] [DEBUG] QUERY OK db=19.4ms idle=46.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T07:36:12Z", "application", 41418, ~N[2026-06-23 07:37:05], ~N[2026-06-23 07:37:05]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:05.868] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334742, itemkey: "application", value: nil, timestamp: "2026-06-23T07:36:12Z", message: "Current application version", status_log_id: 41418, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:05], updated_at: ~N[2026-06-23 07:37:05]}} [2026-06-23 07:37:05.877] [WARN ] Unexpected async result [2026-06-23 07:37:05.879] [WARN ] Unexpected async result [2026-06-23 07:37:05.898] [DEBUG] QUERY OK source="tms_terminals" db=19.8ms queue=0.3ms idle=33.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:37:05.906] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:35:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:05]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:37:33.194] [INFO ] Received status update for terminal 98251226730002 [2026-06-23 07:37:33.194] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:36:41Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:36:41Z","value":"52"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:36:41Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:36:41Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T07:36:41Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T07:36:41Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T07:36:41Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T07:36:41Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98251226730002","uploadTime":"2026-06-23T07:36:41Z","vendor":"MoreFun"} [2026-06-23 07:37:33.194] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:36:41Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:36:41Z", "value" => "52"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:36:41Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:36:41Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:36:41Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:36:41Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:36:41Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:36:41Z", "value" => ""}], "sn" => "98251226730002", "uploadTime" => "2026-06-23T07:36:41Z", "vendor" => "MoreFun"} [2026-06-23 07:37:33.194] [INFO ] Extracted versions for 98251226730002: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:37:33.194] [INFO ] Detected missing versions for 98251226730002, triggering auto-push [2026-06-23 07:37:33.194] [INFO ] AutoPushService: Triggering auto-push for 98251226730002 (MoreFun MF919) - missing version [2026-06-23 07:37:33.202] [DEBUG] QUERY OK source="parameter_templates" db=6.8ms queue=0.1ms idle=1540.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:37:33.214] [DEBUG] QUERY OK source="tms_terminals" db=11.7ms idle=542.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:37:33.216] [DEBUG] QUERY OK source="parameter_template_values" db=1.9ms idle=12.4ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:37:33.226] [DEBUG] QUERY OK source="parameter_definitions" db=0.7ms queue=8.6ms idle=2.7ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:37:33.230] [DEBUG] QUERY OK source="pos_terminal" db=3.5ms idle=10.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98251226730002"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:37:33.266] [DEBUG] QUERY OK source="pos_merchant" db=36.0ms idle=4.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [106] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:37:33.270] [DEBUG] QUERY OK db=0.7ms queue=2.5ms idle=859.1ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["372916040000000"] [2026-06-23 07:37:33.270] [INFO ] ParamsZipBuilder: Merchant info for merchantid=372916040000000 - business_name=tic tac, QR_USE_SSL=0, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:37:33.273] [DEBUG] QUERY OK source="pos_terminal_data" db=2.5ms queue=0.1ms idle=40.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["91604486"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:37:33.277] [DEBUG] QUERY OK source="address" db=2.9ms idle=7.2ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [300] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:37:33.279] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98251226730002, pos_merchant.merchantid="372916040000000" [2026-06-23 07:37:33.306] [INFO ] ParamsZipBuilder: params.zip stored for 98251226730002 at priv/ota/98251226730002/params.zip [2026-06-23 07:37:33.407] [DEBUG] QUERY OK db=99.7ms idle=33.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "338d1d85e58a35bb062b110465a41aff0d2e0025a41a2183cf489be4263fb768", 3139, 940, ~U[2026-06-23 07:37:33Z], "priv/ota/98251226730002/params.zip", 13, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:37:33.407] [INFO ] AutoPushService: Created push log 30621 for MF919 params.zip [2026-06-23 07:37:33.408] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/params.zip", "requestId" => 3139, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:37:33.408] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:37:33.408] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98251226730002 [2026-06-23 07:37:33.410] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=132.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:37:33.414] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98251226730002 at priv/ota/98251226730002/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:37:33.461] [DEBUG] QUERY OK db=45.4ms queue=0.1ms idle=8.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "4767d61f1226bdf44d3c9988859c4fdf4cc97458e816584651a55b39d49c0224", 9122, 17947, ~U[2026-06-23 07:37:33Z], "priv/ota/98251226730002/l3config.zip", 13, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:37:33.461] [INFO ] AutoPushService: Created push log 30622 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:37:33.462] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98251226730002/l3config.zip", "requestId" => 9122, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:37:33.462] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98251226730002 on topic: /ota/pFppbioOCKlo5c8E/98251226730002/update [2026-06-23 07:37:33.462] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98251226730002 [2026-06-23 07:37:33.464] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=52.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:37:33.464] [INFO ] KeysConfigService: Generating keys.json for 98251226730002 (MF919) [2026-06-23 07:37:33.472] [DEBUG] QUERY OK source="tms_terminals" db=5.3ms idle=3.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:37:33.472] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98251226730002 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98251226730002", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:37:33.490] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:37:33.491] [ERROR] KeysConfigService: Failed to generate keys for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:37:33.491] [ERROR] AutoPushService: Failed to generate keys.json for 98251226730002: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:37:33.494] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms idle=26.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:37:33.501] [ERROR] AutoPushService: Failed to resolve application artifact for 98251226730002: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:37:33.501] [INFO ] AutoPushService: Auto-push completed for 98251226730002 [2026-06-23 07:37:33.505] [DEBUG] QUERY OK source="tms_terminals" db=3.8ms idle=31.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:37:33.505] [INFO ] Terminal updated: 98251226730002 [2026-06-23 07:37:33.546] [DEBUG] QUERY OK source="tms_terminals" db=34.5ms idle=14.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:37:33], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:37:33.549] [DEBUG] QUERY OK source="parameter_templates" db=1.8ms queue=0.1ms idle=41.7ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:37:33.550] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=6.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:37:33.550] [DEBUG] VersionComplianceChecker: 98251226730002 — all versions compliant [2026-06-23 07:37:33.560] [DEBUG] QUERY OK source="tms_terminals" db=8.2ms idle=2.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98251226730002"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:37:33.591] [DEBUG] QUERY OK source="tms_terminals" db=21.3ms idle=19.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:37:33], 13] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:37:33.634] [DEBUG] QUERY OK db=36.9ms idle=36.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [13, "organization_id", "2026-06-23T07:36:41Z", ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:37:33.636] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41420, oid: "organization_id", upload_time: "2026-06-23T07:36:41Z", terminal_id: 13, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]} [2026-06-23 07:37:33.636] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:36:41Z", "value" => "online"} [2026-06-23 07:37:33.680] [DEBUG] QUERY OK db=43.7ms idle=44.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:36:41Z", "online", "status", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.680] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334744, itemkey: "status", value: "online", timestamp: "2026-06-23T07:36:41Z", message: "Terminal status update", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.680] [INFO ] Setting terminal 98251226730002 status to 'online' from status itemkey [2026-06-23 07:37:33.681] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:36:41Z", "value" => "52"} [2026-06-23 07:37:33.681] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:37:33.734] [DEBUG] QUERY OK db=53.3ms idle=18.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:36:41Z", "52", "battery", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.734] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334746, itemkey: "battery", value: "52", timestamp: "2026-06-23T07:36:41Z", message: "Battery level", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.737] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:36:41Z", "value" => "online"} [2026-06-23 07:37:33.779] [DEBUG] QUERY OK db=40.4ms idle=58.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:36:41Z", "online", "network", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.780] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334749, itemkey: "network", value: "online", timestamp: "2026-06-23T07:36:41Z", message: "Network connectivity", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.780] [INFO ] Setting terminal 98251226730002 status to 'online' from network itemkey [2026-06-23 07:37:33.780] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:36:41Z", "value" => "0"} [2026-06-23 07:37:33.780] [INFO ] Terminal 98251226730002 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:37:33.804] [DEBUG] QUERY OK db=23.0ms idle=45.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:36:41Z", "0", "cpu", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.806] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334751, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:36:41Z", message: "CPU usage percentage", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.806] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T07:36:41Z", "value" => "1.0.0"} [2026-06-23 07:37:33.844] [DEBUG] QUERY OK db=37.4ms queue=0.3ms idle=27.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T07:36:41Z", "1.0.0", "parameter_config", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.844] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334753, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T07:36:41Z", message: "Current parameters version", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.845] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T07:36:41Z", "value" => "1.0.1"} [2026-06-23 07:37:33.869] [DEBUG] QUERY OK db=24.0ms idle=41.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T07:36:41Z", "1.0.1", "emv_config", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.869] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334755, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T07:36:41Z", message: "Current EMV config version", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.869] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T07:36:41Z", "value" => ""} [2026-06-23 07:37:33.906] [DEBUG] QUERY OK db=36.4ms idle=25.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T07:36:41Z", "keys_config", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.907] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334756, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T07:36:41Z", message: "Current keys config version", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.907] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T07:36:41Z", "value" => ""} [2026-06-23 07:37:33.926] [DEBUG] QUERY OK db=18.4ms queue=0.1ms idle=38.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T07:36:41Z", "application", 41420, ~N[2026-06-23 07:37:33], ~N[2026-06-23 07:37:33]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:33.926] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334758, itemkey: "application", value: nil, timestamp: "2026-06-23T07:36:41Z", message: "Current application version", status_log_id: 41420, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:33], updated_at: ~N[2026-06-23 07:37:33]}} [2026-06-23 07:37:33.926] [WARN ] Unexpected async result [2026-06-23 07:37:33.928] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=20.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:37:33.927] [WARN ] Unexpected async result [2026-06-23 07:37:33.951] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:35:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:37:48.413] [INFO ] Running offline device check... [2026-06-23 07:37:48.413] [INFO ] Starting offline device check... [2026-06-23 07:37:48.419] [DEBUG] QUERY OK source="tms_terminals" db=5.8ms idle=805.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:37:48.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=659.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.446] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.3ms idle=15.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.452] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=11.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.454] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.458] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.462] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms queue=1.1ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.465] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.469] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=1.1ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.470] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.474] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.487] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.490] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=13.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.506] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.1ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.521] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms queue=3.1ms idle=18.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.523] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=15.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms queue=0.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.526] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.543] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.545] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=17.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.551] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.555] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.558] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=1.0ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.559] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.587] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=27.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.589] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=28.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.592] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.603] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.5ms queue=0.1ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.7ms idle=13.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.611] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.612] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.615] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.633] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms queue=0.1ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.637] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms queue=0.1ms idle=18.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.646] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms queue=1.8ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms queue=0.1ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.652] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.657] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms queue=1.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.661] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.662] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.665] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:37:48.665] [INFO ] Offline device check completed. Found 35 offline devices, updated 0 statuses. [2026-06-23 07:37:48.666] [INFO ] Offline device check completed successfully [2026-06-23 07:37:50.700] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:37:50.700] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:37:50Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:37:50Z","value":"87"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:37:50Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:37:50Z","value":"4"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:37:50Z","value":"58"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:37:50Z","value":"13.024476477876306"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:37:50Z","value":"77.63997844420373"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:37:50Z","vendor":"softpos"} [2026-06-23 07:37:50.701] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:37:50Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:37:50Z", "value" => "87"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:37:50Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:37:50Z", "value" => "4"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:37:50Z", "value" => "58"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:37:50Z", "value" => "13.024476477876306"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:37:50Z", "value" => "77.63997844420373"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:37:50Z", "vendor" => "softpos"} [2026-06-23 07:37:50.701] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:37:50.701] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:37:50.701] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:37:50.703] [DEBUG] QUERY OK source="parameter_templates" db=1.5ms idle=923.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:37:50.705] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=285.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:37:50.707] [DEBUG] QUERY OK source="parameter_template_values" db=1.5ms idle=2.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:37:50.718] [DEBUG] QUERY OK source="parameter_definitions" db=8.8ms queue=1.6ms idle=2.2ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:37:50.732] [DEBUG] QUERY OK source="pos_terminal" db=13.5ms idle=11.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:37:50.760] [DEBUG] QUERY OK source="pos_merchant" db=22.1ms queue=4.3ms idle=14.4ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:37:50.772] [DEBUG] QUERY OK db=5.8ms queue=5.9ms idle=343.2ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:37:50.772] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:37:50.782] [DEBUG] QUERY OK source="pos_terminal_data" db=9.7ms idle=40.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:37:50.794] [DEBUG] QUERY OK source="address" db=6.7ms queue=2.8ms idle=23.9ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:37:50.800] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:37:50.815] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:37:50.854] [DEBUG] QUERY OK db=27.1ms queue=1.7ms idle=32.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "d5270c187591dadd24825f717fd31b316418502f24d4fc48de49b5c07216d19f", 2404, 946, ~U[2026-06-23 07:37:50Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:37:50], ~N[2026-06-23 07:37:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:37:50.854] [INFO ] AutoPushService: Created push log 30625 for MF919 params.zip [2026-06-23 07:37:50.854] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 2404, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:37:50.863] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:37:50.866] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:37:50.872] [DEBUG] QUERY OK source="config_file_versions" db=3.2ms queue=1.4ms idle=60.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:37:50.911] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:37:50.956] [DEBUG] QUERY OK db=24.2ms queue=4.5ms idle=73.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "87a443bcb42be13123e4ff0adce026b8df1bf8e3846b8dc91fb6b8f3c75eba80", 2468, 2334, ~U[2026-06-23 07:37:50Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:37:50], ~N[2026-06-23 07:37:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:37:50.960] [INFO ] AutoPushService: Created push log 30627 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:37:50.970] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 2468, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:37:50.970] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:37:50.970] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:37:50.981] [DEBUG] QUERY OK source="config_file_versions" db=8.6ms idle=100.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:37:50.981] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:37:50.999] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms queue=15.9ms idle=26.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:37:51.011] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:37:51.036] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:37:51.044] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:37:51.046] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:37:51.050] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:37:51.051] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:37:51.066] [DEBUG] QUERY OK source="tms_terminals" db=4.9ms idle=74.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:37:51.070] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:37:51.075] [DEBUG] QUERY OK source="parameter_templates" db=3.4ms idle=72.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:37:51.080] [DEBUG] QUERY OK source="config_file_versions" db=4.8ms idle=14.2ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:37:51.080] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:37:51.084] [DEBUG] QUERY OK source="tms_terminals" db=3.5ms idle=5.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:37:51.099] [DEBUG] QUERY OK source="tms_terminals" db=13.1ms idle=5.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:37:51], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:37:51.129] [DEBUG] QUERY OK db=26.3ms queue=3.1ms idle=15.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:37:50Z", ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:37:51.129] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41422, oid: "organization_id", upload_time: "2026-06-23T07:37:50Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]} [2026-06-23 07:37:51.129] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:37:50Z", "value" => "online"} [2026-06-23 07:37:51.236] [DEBUG] QUERY OK db=104.0ms queue=2.5ms idle=31.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:37:50Z", "online", "status", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.236] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334760, itemkey: "status", value: "online", timestamp: "2026-06-23T07:37:50Z", message: "Terminal status update", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.236] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:37:51.241] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=111.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:37:51], 51] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:37:51.242] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:37:51.241] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:37:50Z", "value" => "87"} [2026-06-23 07:37:51.293] [DEBUG] QUERY OK db=49.9ms queue=0.1ms idle=6.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:37:50Z", "87", "battery", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.297] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334762, itemkey: "battery", value: "87", timestamp: "2026-06-23T07:37:50Z", message: "Battery level", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.298] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:37:50Z", "value" => "online"} [2026-06-23 07:37:51.329] [DEBUG] QUERY OK db=28.4ms idle=60.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:37:50Z", "online", "network", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.330] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334764, itemkey: "network", value: "online", timestamp: "2026-06-23T07:37:50Z", message: "Network connectivity", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.330] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:37:51.337] [DEBUG] QUERY OK source="tms_terminals" db=7.1ms idle=37.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:37:51], 51] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:37:51.339] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:37:50Z", "value" => "4"} [2026-06-23 07:37:51.340] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:37:51.378] [DEBUG] QUERY OK db=36.2ms idle=11.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:37:50Z", "4", "cpu", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.380] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334766, itemkey: "cpu", value: "4", timestamp: "2026-06-23T07:37:50Z", message: "CPU usage percentage", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.380] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:37:50Z", "value" => "58"} [2026-06-23 07:37:51.416] [DEBUG] QUERY OK db=35.6ms queue=0.4ms idle=42.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:37:50Z", "58", "memory", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.416] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334768, itemkey: "memory", value: "58", timestamp: "2026-06-23T07:37:50Z", message: "Memory usage percentage", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.417] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:37:51.489] [DEBUG] QUERY OK db=30.2ms queue=41.8ms idle=39.5ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.489] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334770, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.490] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:37:51.561] [DEBUG] QUERY OK db=30.1ms queue=40.5ms idle=73.7ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.565] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334772, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.565] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:37:51.589] [DEBUG] QUERY OK db=23.4ms idle=76.0ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.589] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334774, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.589] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:37:51.625] [DEBUG] QUERY OK db=35.1ms queue=0.2ms idle=28.7ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.627] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334776, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.627] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:37:50Z", "value" => "13.024476477876306"} [2026-06-23 07:37:51.656] [DEBUG] QUERY OK db=27.7ms queue=0.3ms idle=39.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:37:50Z", "13.024476477876306", "latitude", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.656] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334778, itemkey: "latitude", value: "13.024476477876306", timestamp: "2026-06-23T07:37:50Z", message: "Device Latitude", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.657] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:37:50Z", "value" => "77.63997844420373"} [2026-06-23 07:37:51.689] [DEBUG] QUERY OK db=31.8ms idle=32.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:37:50Z", "77.63997844420373", "longitude", 41422, ~N[2026-06-23 07:37:51], ~N[2026-06-23 07:37:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:37:51.689] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334780, itemkey: "longitude", value: "77.63997844420373", timestamp: "2026-06-23T07:37:50Z", message: "Device Longitude", status_log_id: 41422, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:37:51], updated_at: ~N[2026-06-23 07:37:51]}} [2026-06-23 07:37:51.691] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=0.1ms idle=33.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:37:51], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:37:51.696] [WARN ] Unexpected async result [2026-06-23 07:37:51.696] [WARN ] Unexpected async result [2026-06-23 07:37:51.698] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms idle=7.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:37:51.699] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:35:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:40:55.199] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 07:40:55.199] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T11:40:53Z","org.device":[{"itemkey":"battery","value":7,"timestamp":"2026-06-23T11:40:53Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T11:40:53Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T11:40:53Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T11:40:53Z","message":""}]} [2026-06-23 07:40:55.200] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:40:53Z", "value" => 7}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:40:53Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:40:53Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:40:53Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T11:40:53Z"} [2026-06-23 07:40:55.202] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 07:40:55.205] [DEBUG] QUERY OK source="tms_terminals" db=3.2ms queue=0.1ms idle=1374.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:40:55.206] [INFO ] Terminal updated: 61250424798001 [2026-06-23 07:40:55.232] [DEBUG] QUERY OK source="tms_terminals" db=23.0ms idle=371.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:40:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:40:55.234] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=28.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:40:55.254] [DEBUG] QUERY OK source="tms_terminals" db=19.2ms idle=5.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:40:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:40:55.298] [DEBUG] QUERY OK db=44.1ms idle=20.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T11:40:53Z", ~N[2026-06-23 07:40:55], ~N[2026-06-23 07:40:55]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:40:55.299] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41423, oid: "org-id-placeholder", upload_time: "2026-06-23T11:40:53Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:40:55], updated_at: ~N[2026-06-23 07:40:55]} [2026-06-23 07:40:55.299] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:40:53Z", "value" => 7} [2026-06-23 07:40:55.356] [DEBUG] QUERY OK db=13.8ms queue=41.8ms idle=45.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:40:53Z", "7", "battery", 41423, ~N[2026-06-23 07:40:55], ~N[2026-06-23 07:40:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:40:55.356] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334781, itemkey: "battery", value: "7", timestamp: "2026-06-23T11:40:53Z", message: nil, status_log_id: 41423, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:40:55], updated_at: ~N[2026-06-23 07:40:55]}} [2026-06-23 07:40:55.356] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:40:53Z", "value" => 50} [2026-06-23 07:40:55.395] [DEBUG] QUERY OK db=38.2ms idle=58.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T11:40:53Z", "50", "memory", 41423, ~N[2026-06-23 07:40:55], ~N[2026-06-23 07:40:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:40:55.396] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334783, itemkey: "memory", value: "50", timestamp: "2026-06-23T11:40:53Z", message: "Normal", status_log_id: 41423, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:40:55], updated_at: ~N[2026-06-23 07:40:55]}} [2026-06-23 07:40:55.396] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:40:53Z", "value" => 50} [2026-06-23 07:40:55.429] [DEBUG] QUERY OK db=32.8ms idle=41.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:40:53Z", "50", "cpu", 41423, ~N[2026-06-23 07:40:55], ~N[2026-06-23 07:40:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:40:55.429] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334785, itemkey: "cpu", value: "50", timestamp: "2026-06-23T11:40:53Z", message: nil, status_log_id: 41423, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:40:55], updated_at: ~N[2026-06-23 07:40:55]}} [2026-06-23 07:40:55.430] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:40:53Z", "value" => "online"} [2026-06-23 07:40:55.506] [DEBUG] QUERY OK db=34.3ms queue=41.7ms idle=34.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:40:53Z", "online", "network", 41423, ~N[2026-06-23 07:40:55], ~N[2026-06-23 07:40:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:40:55.507] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334788, itemkey: "network", value: "online", timestamp: "2026-06-23T11:40:53Z", message: nil, status_log_id: 41423, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:40:55], updated_at: ~N[2026-06-23 07:40:55]}} [2026-06-23 07:40:55.507] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 07:40:55.507] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:40:55.511] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=80.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:40:55.512] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:40:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 15, serial_number: "UNKNOWN_SN", oid: "organization_id", status: "online", model: nil, vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-12 07:02:33], updated_at: ~N[2026-06-23 05:40:41]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], ...}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, ...}] [2026-06-23 07:42:47.664] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 07:42:47.666] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.1ms idle=143.3ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 07:42:47.670] [DEBUG] QUERY OK source="filter_usage" db=2.2ms idle=137.2ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 07:42:47.671] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 07:42:48.671] [INFO ] Running offline device check... [2026-06-23 07:42:48.676] [INFO ] Starting offline device check... [2026-06-23 07:42:48.678] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=605.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:42:48.719] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=24.8ms queue=0.4ms idle=144.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.732] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.6ms queue=0.1ms idle=41.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.736] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms queue=0.2ms idle=13.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.739] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=0.1ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.740] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.743] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.744] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.3ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.745] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=4.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.753] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.766] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.767] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=13.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.781] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.0ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.788] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms queue=0.1ms idle=14.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.796] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms queue=1.3ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.6ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.813] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms queue=0.4ms idle=8.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.844] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=30.2ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.858] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms queue=7.5ms idle=31.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.861] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=15.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.864] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.869] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.875] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.932] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=56.7ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.935] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.1ms idle=57.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.939] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.971] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=28.1ms queue=3.2ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=32.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.979] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.985] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:48.991] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.000] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms queue=2.8ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.001] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.009] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.1ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=8.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.026] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.030] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=2.5ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.040] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=2.2ms idle=8.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.044] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=1.9ms idle=10.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:42:49.044] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 07:42:49.044] [INFO ] Offline device check completed successfully [2026-06-23 07:42:50.927] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:42:50.927] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:42:50Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:42:50Z","value":"89"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:42:50Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:42:50Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:42:50Z","value":"58"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:42:50Z","value":"13.0246035"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:42:50Z","value":"77.6402597"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:42:50Z","vendor":"softpos"} [2026-06-23 07:42:50.927] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:42:50Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:42:50Z", "value" => "89"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:42:50Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:42:50Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:42:50Z", "value" => "58"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:42:50Z", "value" => "13.0246035"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:42:50Z", "value" => "77.6402597"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:42:50Z", "vendor" => "softpos"} [2026-06-23 07:42:50.928] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:42:50.928] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:42:50.928] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:42:50.930] [DEBUG] QUERY OK source="parameter_templates" db=1.7ms idle=420.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:42:50.935] [DEBUG] QUERY OK source="tms_terminals" db=5.2ms idle=361.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:42:50.938] [DEBUG] QUERY OK source="parameter_template_values" db=2.1ms idle=5.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:42:50.943] [DEBUG] QUERY OK source="parameter_definitions" db=1.5ms queue=3.1ms idle=2.9ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:42:50.946] [DEBUG] QUERY OK source="pos_terminal" db=2.8ms idle=5.4ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:42:50.985] [DEBUG] QUERY OK source="pos_merchant" db=38.7ms idle=3.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:42:50.986] [DEBUG] QUERY OK db=0.4ms queue=0.6ms idle=477.7ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:42:50.987] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:42:50.987] [DEBUG] QUERY OK source="pos_terminal_data" db=0.3ms queue=0.1ms idle=40.7ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:42:50.988] [DEBUG] QUERY OK source="address" db=0.5ms idle=2.3ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:42:50.988] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:42:50.996] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:42:51.052] [DEBUG] QUERY OK db=54.4ms idle=10.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "8975066b3168c7e7bb66a65acff9b70d2c06f94cb5542b9b14e49fd18e3cc2d9", 9442, 946, ~U[2026-06-23 07:42:50Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:42:50], ~N[2026-06-23 07:42:50]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:42:51.053] [INFO ] AutoPushService: Created push log 30629 for MF919 params.zip [2026-06-23 07:42:51.053] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 9442, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:42:51.053] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:42:51.054] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:42:51.056] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms queue=0.1ms idle=66.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:42:51.061] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:42:51.102] [DEBUG] QUERY OK db=34.0ms idle=15.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "f1fe10db777bd11fd74d75501c11055d81fd53221027839d3a42db9f20bc9335", 2596, 2334, ~U[2026-06-23 07:42:51Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:42:51.102] [INFO ] AutoPushService: Created push log 30631 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:42:51.102] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 2596, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:42:51.102] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:42:51.102] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:42:51.115] [DEBUG] QUERY OK source="config_file_versions" db=6.3ms idle=53.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:42:51.115] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:42:51.118] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=14.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:42:51.118] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:42:51.127] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:42:51.127] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:42:51.127] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:42:51.127] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:42:51.128] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:42:51.150] [DEBUG] QUERY OK source="tms_terminals" db=3.7ms queue=18.5ms idle=12.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:42:51.150] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:42:51.158] [DEBUG] QUERY OK source="parameter_templates" db=0.5ms idle=39.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:42:51.161] [DEBUG] QUERY OK source="config_file_versions" db=2.6ms idle=8.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:42:51.161] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:42:51.162] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=3.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:42:51.164] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:42:51], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:42:51.184] [DEBUG] QUERY OK db=19.9ms idle=2.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:42:50Z", ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:42:51.185] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41425, oid: "organization_id", upload_time: "2026-06-23T07:42:50Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]} [2026-06-23 07:42:51.185] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:42:50Z", "value" => "online"} [2026-06-23 07:42:51.223] [DEBUG] QUERY OK db=36.8ms idle=22.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:42:50Z", "online", "status", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.223] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334789, itemkey: "status", value: "online", timestamp: "2026-06-23T07:42:50Z", message: "Terminal status update", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.224] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:42:51.228] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=43.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:42:51], 51] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:42:51.229] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:42:51.228] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:42:50Z", "value" => "89"} [2026-06-23 07:42:51.266] [DEBUG] QUERY OK db=35.1ms idle=7.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:42:50Z", "89", "battery", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.266] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334791, itemkey: "battery", value: "89", timestamp: "2026-06-23T07:42:50Z", message: "Battery level", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.266] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:42:50Z", "value" => "online"} [2026-06-23 07:42:51.322] [DEBUG] QUERY OK db=54.6ms idle=38.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:42:50Z", "online", "network", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.322] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334793, itemkey: "network", value: "online", timestamp: "2026-06-23T07:42:50Z", message: "Network connectivity", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.322] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:42:51.324] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=56.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:42:51], 51] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 07:42:51.325] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:42:51.325] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:42:50Z", "value" => "0"} [2026-06-23 07:42:51.383] [DEBUG] QUERY OK db=58.2ms idle=3.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:42:50Z", "0", "cpu", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.384] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334795, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:42:50Z", message: "CPU usage percentage", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.384] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:42:50Z", "value" => "58"} [2026-06-23 07:42:51.419] [DEBUG] QUERY OK db=34.3ms idle=59.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:42:50Z", "58", "memory", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.419] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334797, itemkey: "memory", value: "58", timestamp: "2026-06-23T07:42:50Z", message: "Memory usage percentage", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.419] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:42:51.477] [DEBUG] QUERY OK db=56.6ms queue=0.5ms idle=36.2ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.477] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334799, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.477] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:42:51.543] [DEBUG] QUERY OK db=23.8ms queue=40.9ms idle=58.9ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.543] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334802, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.543] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:42:51.585] [DEBUG] QUERY OK db=39.8ms idle=68.4ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.585] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334804, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.585] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:42:51.609] [DEBUG] QUERY OK db=23.4ms idle=9.5ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.609] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334806, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.610] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:42:50Z", "value" => "13.0246035"} [2026-06-23 07:42:51.648] [DEBUG] QUERY OK db=29.6ms idle=32.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:42:50Z", "13.0246035", "latitude", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.648] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334808, itemkey: "latitude", value: "13.0246035", timestamp: "2026-06-23T07:42:50Z", message: "Device Latitude", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.662] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:42:50Z", "value" => "77.6402597"} [2026-06-23 07:42:51.705] [DEBUG] QUERY OK db=42.2ms idle=53.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:42:50Z", "77.6402597", "longitude", 41425, ~N[2026-06-23 07:42:51], ~N[2026-06-23 07:42:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:42:51.705] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334810, itemkey: "longitude", value: "77.6402597", timestamp: "2026-06-23T07:42:50Z", message: "Device Longitude", status_log_id: 41425, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:42:51], updated_at: ~N[2026-06-23 07:42:51]}} [2026-06-23 07:42:51.720] [DEBUG] QUERY OK source="tms_terminals" db=8.0ms idle=64.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:42:51], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 07:42:51.721] [WARN ] Unexpected async result [2026-06-23 07:42:51.721] [WARN ] Unexpected async result [2026-06-23 07:42:51.722] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=16.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:42:51.736] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:40:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:45:55.259] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 07:45:55.259] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T11:45:53Z","org.device":[{"itemkey":"battery","value":9,"timestamp":"2026-06-23T11:45:53Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T11:45:53Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T11:45:53Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T11:45:53Z","message":""}]} [2026-06-23 07:45:55.259] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:45:53Z", "value" => 9}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:45:53Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:45:53Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:45:53Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T11:45:53Z"} [2026-06-23 07:45:55.259] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 07:45:55.264] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms queue=2.4ms idle=1664.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:45:55.265] [INFO ] Terminal updated: 61250424798001 [2026-06-23 07:45:55.302] [DEBUG] QUERY OK source="tms_terminals" db=37.2ms idle=663.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:45:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:45:55.309] [DEBUG] QUERY OK source="tms_terminals" db=5.2ms idle=38.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:45:55.378] [DEBUG] QUERY OK source="tms_terminals" db=62.0ms queue=3.2ms idle=10.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:45:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:45:55.420] [DEBUG] QUERY OK db=34.1ms idle=76.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T11:45:53Z", ~N[2026-06-23 07:45:55], ~N[2026-06-23 07:45:55]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:45:55.420] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41427, oid: "org-id-placeholder", upload_time: "2026-06-23T11:45:53Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:45:55], updated_at: ~N[2026-06-23 07:45:55]} [2026-06-23 07:45:55.430] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:45:53Z", "value" => 9} [2026-06-23 07:45:55.476] [DEBUG] QUERY OK db=35.3ms queue=10.2ms idle=53.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:45:53Z", "9", "battery", 41427, ~N[2026-06-23 07:45:55], ~N[2026-06-23 07:45:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:45:55.478] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334812, itemkey: "battery", value: "9", timestamp: "2026-06-23T11:45:53Z", message: nil, status_log_id: 41427, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:45:55], updated_at: ~N[2026-06-23 07:45:55]}} [2026-06-23 07:45:55.478] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:45:53Z", "value" => 50} [2026-06-23 07:45:55.520] [DEBUG] QUERY OK db=36.2ms queue=5.4ms idle=58.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T11:45:53Z", "50", "memory", 41427, ~N[2026-06-23 07:45:55], ~N[2026-06-23 07:45:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:45:55.522] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334814, itemkey: "memory", value: "50", timestamp: "2026-06-23T11:45:53Z", message: "Normal", status_log_id: 41427, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:45:55], updated_at: ~N[2026-06-23 07:45:55]}} [2026-06-23 07:45:55.522] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:45:53Z", "value" => 50} [2026-06-23 07:45:55.558] [DEBUG] QUERY OK db=28.0ms queue=7.4ms idle=47.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:45:53Z", "50", "cpu", 41427, ~N[2026-06-23 07:45:55], ~N[2026-06-23 07:45:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:45:55.559] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334816, itemkey: "cpu", value: "50", timestamp: "2026-06-23T11:45:53Z", message: nil, status_log_id: 41427, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:45:55], updated_at: ~N[2026-06-23 07:45:55]}} [2026-06-23 07:45:55.559] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:45:53Z", "value" => "online"} [2026-06-23 07:45:55.635] [DEBUG] QUERY OK db=32.4ms queue=41.3ms idle=41.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:45:53Z", "online", "network", 41427, ~N[2026-06-23 07:45:55], ~N[2026-06-23 07:45:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:45:55.635] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334818, itemkey: "network", value: "online", timestamp: "2026-06-23T11:45:53Z", message: nil, status_log_id: 41427, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:45:55], updated_at: ~N[2026-06-23 07:45:55]}} [2026-06-23 07:45:55.635] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 07:45:55.636] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:45:55.640] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=32.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:45:55.643] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:45:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:47:49.045] [INFO ] Running offline device check... [2026-06-23 07:47:49.045] [INFO ] Starting offline device check... [2026-06-23 07:47:49.049] [DEBUG] QUERY OK source="tms_terminals" db=2.7ms idle=887.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:47:49.067] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.3ms idle=528.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.076] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms queue=0.5ms idle=17.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.078] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=9.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.082] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.086] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.088] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.092] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=3.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.096] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.107] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.112] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.7ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.134] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=21.0ms queue=0.8ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms queue=0.1ms idle=22.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.144] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms queue=0.1ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.149] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms queue=1.0ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.151] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.165] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms queue=0.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.168] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.169] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.170] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.172] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.176] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=23.9ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.201] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=24.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.204] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.213] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.215] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=10.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.218] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.222] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=1.7ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.225] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.235] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.8ms queue=3.2ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.238] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.239] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.244] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.245] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=4.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.248] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.250] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.252] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.255] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.256] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:47:49.257] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 07:47:49.257] [INFO ] Offline device check completed successfully [2026-06-23 07:47:51.188] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:47:51.188] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:47:51Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:47:51Z","value":"91"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:47:51Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:47:51Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:47:51Z","value":"59"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:47:51Z","value":"13.0246035"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:47:51Z","value":"77.6402597"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:47:51Z","vendor":"softpos"} [2026-06-23 07:47:51.188] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:47:51Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:47:51Z", "value" => "91"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:47:51Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:47:51Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:47:51Z", "value" => "59"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:47:51Z", "value" => "13.0246035"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:47:51Z", "value" => "77.6402597"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:47:51Z", "vendor" => "softpos"} [2026-06-23 07:47:51.188] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:47:51.190] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:47:51.191] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:47:51.202] [DEBUG] QUERY OK source="parameter_templates" db=10.4ms idle=620.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:47:51.203] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms queue=0.2ms idle=16.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:47:51.204] [DEBUG] QUERY OK source="parameter_template_values" db=1.3ms idle=1.2ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:47:51.212] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=2.7ms idle=1.9ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:47:51.216] [DEBUG] QUERY OK source="pos_terminal" db=3.5ms idle=8.6ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:47:51.249] [DEBUG] QUERY OK source="pos_merchant" db=32.0ms queue=0.5ms idle=8.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:47:51.256] [DEBUG] QUERY OK db=2.2ms queue=4.0ms idle=680.1ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:47:51.258] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:47:51.260] [DEBUG] QUERY OK source="pos_terminal_data" db=1.4ms idle=41.9ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:47:51.262] [DEBUG] QUERY OK source="address" db=1.4ms idle=10.8ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:47:51.262] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:47:51.265] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:47:51.354] [DEBUG] QUERY OK db=85.6ms idle=6.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "94ab69a2d70c2c1174eff8a2adce98b488789e033d180e5ae37d6e9fd1fb745a", 9922, 946, ~U[2026-06-23 07:47:51Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:47:51.354] [INFO ] AutoPushService: Created push log 30633 for MF919 params.zip [2026-06-23 07:47:51.355] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 9922, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:47:51.355] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:47:51.355] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:47:51.357] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms queue=0.2ms idle=93.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:47:51.359] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:47:51.401] [DEBUG] QUERY OK db=39.0ms idle=9.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "ec551eaa1c721e0b5ee8335e098d56165fd9bdc8b4ac8e2fbb0fdb03d650090d", 3587, 2334, ~U[2026-06-23 07:47:51Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:47:51.403] [INFO ] AutoPushService: Created push log 30635 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:47:51.404] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 3587, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:47:51.404] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:47:51.404] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:47:51.412] [DEBUG] QUERY OK source="config_file_versions" db=7.7ms idle=47.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:47:51.412] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:47:51.414] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=11.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:47:51.415] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:47:51.417] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:47:51.417] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:47:51.417] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:47:51.417] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:47:51.417] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:47:51.418] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=5.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:47:51.419] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:47:51.479] [DEBUG] QUERY OK source="tms_terminals" db=58.2ms queue=0.3ms idle=5.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:47:51], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:47:51.489] [DEBUG] QUERY OK source="parameter_templates" db=10.0ms idle=60.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:47:51.499] [DEBUG] QUERY OK source="config_file_versions" db=3.3ms idle=16.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:47:51.499] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:47:51.509] [DEBUG] QUERY OK source="tms_terminals" db=9.4ms idle=10.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:47:51.538] [DEBUG] QUERY OK source="tms_terminals" db=21.7ms queue=0.2ms idle=16.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:47:51], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:47:51.578] [DEBUG] QUERY OK db=39.8ms idle=29.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:47:51Z", ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:47:51.578] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41429, oid: "organization_id", upload_time: "2026-06-23T07:47:51Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]} [2026-06-23 07:47:51.579] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:47:51Z", "value" => "online"} [2026-06-23 07:47:51.619] [DEBUG] QUERY OK db=39.4ms idle=41.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:47:51Z", "online", "status", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.619] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334819, itemkey: "status", value: "online", timestamp: "2026-06-23T07:47:51Z", message: "Terminal status update", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.619] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:47:51.622] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:47:51Z", "value" => "91"} [2026-06-23 07:47:51.623] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:47:51.666] [DEBUG] QUERY OK db=43.4ms idle=44.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:47:51Z", "91", "battery", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.666] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334821, itemkey: "battery", value: "91", timestamp: "2026-06-23T07:47:51Z", message: "Battery level", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.666] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:47:51Z", "value" => "online"} [2026-06-23 07:47:51.694] [DEBUG] QUERY OK db=26.4ms idle=48.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:47:51Z", "online", "network", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.694] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334823, itemkey: "network", value: "online", timestamp: "2026-06-23T07:47:51Z", message: "Network connectivity", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.695] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:47:51.697] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:47:51.698] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:47:51Z", "value" => "0"} [2026-06-23 07:47:51.744] [DEBUG] QUERY OK db=43.2ms queue=2.3ms idle=32.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:47:51Z", "0", "cpu", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.746] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334826, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:47:51Z", message: "CPU usage percentage", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.746] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:47:51Z", "value" => "59"} [2026-06-23 07:47:51.806] [DEBUG] QUERY OK db=58.7ms idle=53.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:47:51Z", "59", "memory", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.806] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334827, itemkey: "memory", value: "59", timestamp: "2026-06-23T07:47:51Z", message: "Memory usage percentage", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.807] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:47:51.840] [DEBUG] QUERY OK db=30.2ms queue=2.7ms idle=63.1ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.841] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334829, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.841] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:47:51.872] [DEBUG] QUERY OK db=30.2ms queue=0.6ms idle=35.6ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.873] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334831, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.873] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:47:51.936] [DEBUG] QUERY OK db=62.2ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.937] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334833, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.937] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:47:51.978] [DEBUG] QUERY OK db=40.3ms queue=0.1ms idle=65.5ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:51.979] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334835, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:51.979] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:47:51Z", "value" => "13.0246035"} [2026-06-23 07:47:52.013] [DEBUG] QUERY OK db=33.9ms idle=42.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:47:51Z", "13.0246035", "latitude", 41429, ~N[2026-06-23 07:47:51], ~N[2026-06-23 07:47:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:52.013] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334837, itemkey: "latitude", value: "13.0246035", timestamp: "2026-06-23T07:47:51Z", message: "Device Latitude", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:51], updated_at: ~N[2026-06-23 07:47:51]}} [2026-06-23 07:47:52.014] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:47:51Z", "value" => "77.6402597"} [2026-06-23 07:47:52.054] [DEBUG] QUERY OK db=38.8ms idle=36.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:47:51Z", "77.6402597", "longitude", 41429, ~N[2026-06-23 07:47:52], ~N[2026-06-23 07:47:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:47:52.054] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334839, itemkey: "longitude", value: "77.6402597", timestamp: "2026-06-23T07:47:51Z", message: "Device Longitude", status_log_id: 41429, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:47:52], updated_at: ~N[2026-06-23 07:47:52]}} [2026-06-23 07:47:52.054] [WARN ] Unexpected async result [2026-06-23 07:47:52.054] [WARN ] Unexpected async result [2026-06-23 07:47:52.056] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=41.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:47:52.057] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:45:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:50:55.210] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 07:50:55.210] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T11:50:53Z","org.device":[{"itemkey":"battery","value":11,"timestamp":"2026-06-23T11:50:53Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T11:50:53Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T11:50:53Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T11:50:53Z","message":""}]} [2026-06-23 07:50:55.210] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:50:53Z", "value" => 11}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:50:53Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:50:53Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:50:53Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T11:50:53Z"} [2026-06-23 07:50:55.210] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 07:50:55.217] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=628.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:50:55.217] [INFO ] Terminal updated: 61250424798001 [2026-06-23 07:50:55.261] [DEBUG] QUERY OK source="tms_terminals" db=44.2ms idle=171.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:50:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:50:55.263] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms queue=0.1ms idle=48.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:50:55.343] [DEBUG] QUERY OK source="tms_terminals" db=79.6ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:50:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:50:55.397] [DEBUG] QUERY OK db=52.9ms queue=0.1ms idle=80.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T11:50:53Z", ~N[2026-06-23 07:50:55], ~N[2026-06-23 07:50:55]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:50:55.397] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41432, oid: "org-id-placeholder", upload_time: "2026-06-23T11:50:53Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:50:55], updated_at: ~N[2026-06-23 07:50:55]} [2026-06-23 07:50:55.397] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:50:53Z", "value" => 11} [2026-06-23 07:50:55.520] [DEBUG] QUERY OK db=120.9ms queue=0.7ms idle=54.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:50:53Z", "11", "battery", 41432, ~N[2026-06-23 07:50:55], ~N[2026-06-23 07:50:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:50:55.520] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334841, itemkey: "battery", value: "11", timestamp: "2026-06-23T11:50:53Z", message: nil, status_log_id: 41432, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:50:55], updated_at: ~N[2026-06-23 07:50:55]}} [2026-06-23 07:50:55.520] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:50:53Z", "value" => 50} [2026-06-23 07:50:55.624] [DEBUG] QUERY OK db=103.7ms queue=0.1ms idle=0.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T11:50:53Z", "50", "memory", 41432, ~N[2026-06-23 07:50:55], ~N[2026-06-23 07:50:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:50:55.625] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334843, itemkey: "memory", value: "50", timestamp: "2026-06-23T11:50:53Z", message: "Normal", status_log_id: 41432, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:50:55], updated_at: ~N[2026-06-23 07:50:55]}} [2026-06-23 07:50:55.625] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:50:53Z", "value" => 50} [2026-06-23 07:50:55.731] [DEBUG] QUERY OK db=105.1ms queue=1.1ms idle=52.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:50:53Z", "50", "cpu", 41432, ~N[2026-06-23 07:50:55], ~N[2026-06-23 07:50:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:50:55.732] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334845, itemkey: "cpu", value: "50", timestamp: "2026-06-23T11:50:53Z", message: nil, status_log_id: 41432, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:50:55], updated_at: ~N[2026-06-23 07:50:55]}} [2026-06-23 07:50:55.732] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:50:53Z", "value" => "online"} [2026-06-23 07:50:55.852] [DEBUG] QUERY OK db=116.2ms queue=3.2ms idle=107.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:50:53Z", "online", "network", 41432, ~N[2026-06-23 07:50:55], ~N[2026-06-23 07:50:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:50:55.854] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334847, itemkey: "network", value: "online", timestamp: "2026-06-23T11:50:53Z", message: nil, status_log_id: 41432, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:50:55], updated_at: ~N[2026-06-23 07:50:55]}} [2026-06-23 07:50:55.854] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 07:50:55.855] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:50:55.859] [DEBUG] QUERY OK source="tms_terminals" db=3.5ms idle=123.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:50:55.860] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:50:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:52:49.257] [INFO ] Running offline device check... [2026-06-23 07:52:49.257] [INFO ] Starting offline device check... [2026-06-23 07:52:49.268] [DEBUG] QUERY OK source="tms_terminals" db=6.9ms queue=0.1ms idle=633.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:52:49.302] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=27.9ms idle=292.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.320] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.5ms idle=34.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.324] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.5ms idle=18.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.327] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.329] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.334] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms queue=1.0ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.339] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=3.8ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.342] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.1ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.345] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms queue=0.4ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.355] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.363] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms queue=0.5ms idle=10.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.373] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.5ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms queue=0.1ms idle=9.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.381] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.383] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.3ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.384] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.399] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.402] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=15.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.404] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.408] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.412] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.435] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=22.1ms queue=0.3ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=23.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.438] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.447] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.450] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.454] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.458] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms queue=0.8ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.463] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms queue=2.4ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.470] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.472] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.473] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.475] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.476] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.479] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.482] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.487] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms queue=0.6ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.492] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.498] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:52:49.499] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 07:52:49.499] [INFO ] Offline device check completed successfully [2026-06-23 07:53:46.399] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:53:46.399] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:53:46Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:53:46Z","value":"93"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:53:46Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:53:46Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:53:46Z","value":"61"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:53:46Z","value":"13.024323340505362"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:53:46Z","value":"77.6402273029089"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:53:46Z","vendor":"softpos"} [2026-06-23 07:53:46.401] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:53:46Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:53:46Z", "value" => "93"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:53:46Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:53:46Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:53:46Z", "value" => "61"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:53:46Z", "value" => "13.024323340505362"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:53:46Z", "value" => "77.6402273029089"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:53:46Z", "vendor" => "softpos"} [2026-06-23 07:53:46.401] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:53:46.401] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:53:46.401] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:53:46.405] [DEBUG] QUERY OK source="parameter_templates" db=3.1ms idle=1565.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:53:46.407] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=566.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:53:46.412] [DEBUG] QUERY OK source="parameter_template_values" db=3.8ms idle=2.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:53:46.415] [DEBUG] QUERY OK source="parameter_definitions" db=1.0ms queue=1.5ms idle=5.7ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:53:46.417] [DEBUG] QUERY OK source="pos_terminal" db=1.1ms idle=4.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:53:46.457] [DEBUG] QUERY OK source="pos_merchant" db=38.4ms queue=0.9ms idle=1.8ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:53:46.459] [DEBUG] QUERY OK db=0.8ms queue=0.9ms idle=1838.4ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:53:46.459] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:53:46.461] [DEBUG] QUERY OK source="pos_terminal_data" db=1.3ms idle=42.2ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:53:46.461] [DEBUG] QUERY OK source="address" db=0.6ms idle=4.2ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:53:46.462] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:53:46.467] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:53:46.497] [DEBUG] QUERY OK db=27.4ms idle=8.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "ebfa5a330cf1616ba96f7fa4be9b8e04666673f3f515e3be75ccc2214c805206", 10306, 946, ~U[2026-06-23 07:53:46Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:53:46.497] [INFO ] AutoPushService: Created push log 30636 for MF919 params.zip [2026-06-23 07:53:46.498] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 10306, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:53:46.498] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:53:46.498] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:53:46.500] [DEBUG] QUERY OK source="config_file_versions" db=1.8ms idle=36.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:53:46.502] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:53:46.535] [DEBUG] QUERY OK db=32.1ms idle=5.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "6f3afb14466f267c1941ecad439a8dea20108f71037d7441e2462d117172d32e", 2692, 2334, ~U[2026-06-23 07:53:46Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:53:46.535] [INFO ] AutoPushService: Created push log 30638 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:53:46.536] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 2692, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:53:46.536] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:53:46.537] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:53:46.544] [DEBUG] QUERY OK source="config_file_versions" db=2.4ms queue=4.4ms idle=37.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:53:46.544] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:53:46.546] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.2ms idle=10.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:53:46.546] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:53:46.550] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:53:46.550] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:53:46.551] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:53:46.552] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:53:46.552] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:53:46.554] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=7.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:53:46.554] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:53:46.570] [DEBUG] QUERY OK source="tms_terminals" db=15.2ms idle=9.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:53:46], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:53:46.573] [DEBUG] QUERY OK source="parameter_templates" db=1.6ms idle=17.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:53:46.574] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=2.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:53:46.574] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:53:46.575] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:53:46.606] [DEBUG] QUERY OK source="tms_terminals" db=27.1ms queue=0.4ms idle=4.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:53:46], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:53:46.636] [DEBUG] QUERY OK db=28.9ms idle=31.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:53:46Z", ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:53:46.636] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41434, oid: "organization_id", upload_time: "2026-06-23T07:53:46Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]} [2026-06-23 07:53:46.636] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:53:46Z", "value" => "online"} [2026-06-23 07:53:46.653] [DEBUG] QUERY OK db=15.4ms idle=31.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:53:46Z", "online", "status", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.653] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334850, itemkey: "status", value: "online", timestamp: "2026-06-23T07:53:46Z", message: "Terminal status update", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.653] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:53:46.655] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:53:46.654] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:53:46Z", "value" => "93"} [2026-06-23 07:53:46.688] [DEBUG] QUERY OK db=29.9ms queue=0.5ms idle=21.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:53:46Z", "93", "battery", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.688] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334852, itemkey: "battery", value: "93", timestamp: "2026-06-23T07:53:46Z", message: "Battery level", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.688] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:53:46Z", "value" => "online"} [2026-06-23 07:53:46.725] [DEBUG] QUERY OK db=36.0ms idle=35.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:53:46Z", "online", "network", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.725] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334854, itemkey: "network", value: "online", timestamp: "2026-06-23T07:53:46Z", message: "Network connectivity", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.725] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:53:46.725] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:53:46Z", "value" => "0"} [2026-06-23 07:53:46.726] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:53:46.763] [DEBUG] QUERY OK db=37.0ms idle=37.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:53:46Z", "0", "cpu", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.763] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334856, itemkey: "cpu", value: "0", timestamp: "2026-06-23T07:53:46Z", message: "CPU usage percentage", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.763] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:53:46Z", "value" => "61"} [2026-06-23 07:53:46.800] [DEBUG] QUERY OK db=36.4ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:53:46Z", "61", "memory", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.800] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334858, itemkey: "memory", value: "61", timestamp: "2026-06-23T07:53:46Z", message: "Memory usage percentage", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.801] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:53:46.868] [DEBUG] QUERY OK db=23.0ms queue=41.1ms idle=41.3ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.873] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334860, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.873] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:53:46.936] [DEBUG] QUERY OK db=19.4ms queue=43.1ms idle=31.2ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.937] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334864, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.937] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:53:46.970] [DEBUG] QUERY OK db=29.5ms idle=72.5ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:46.971] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334866, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:46.974] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:53:47.002] [DEBUG] QUERY OK db=25.0ms queue=2.2ms idle=38.7ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41434, ~N[2026-06-23 07:53:46], ~N[2026-06-23 07:53:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:47.005] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334868, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:46], updated_at: ~N[2026-06-23 07:53:46]}} [2026-06-23 07:53:47.005] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:53:46Z", "value" => "13.024323340505362"} [2026-06-23 07:53:47.024] [DEBUG] QUERY OK db=11.4ms queue=7.6ms idle=34.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:53:46Z", "13.024323340505362", "latitude", 41434, ~N[2026-06-23 07:53:47], ~N[2026-06-23 07:53:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:47.026] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334869, itemkey: "latitude", value: "13.024323340505362", timestamp: "2026-06-23T07:53:46Z", message: "Device Latitude", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:47], updated_at: ~N[2026-06-23 07:53:47]}} [2026-06-23 07:53:47.026] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:53:46Z", "value" => "77.6402273029089"} [2026-06-23 07:53:47.051] [DEBUG] QUERY OK db=19.9ms queue=3.0ms idle=26.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:53:46Z", "77.6402273029089", "longitude", 41434, ~N[2026-06-23 07:53:47], ~N[2026-06-23 07:53:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:53:47.052] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334870, itemkey: "longitude", value: "77.6402273029089", timestamp: "2026-06-23T07:53:46Z", message: "Device Longitude", status_log_id: 41434, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:53:47], updated_at: ~N[2026-06-23 07:53:47]}} [2026-06-23 07:53:47.054] [WARN ] Unexpected async result [2026-06-23 07:53:47.055] [WARN ] Unexpected async result [2026-06-23 07:53:47.062] [DEBUG] QUERY OK source="tms_terminals" db=9.0ms queue=0.4ms idle=28.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:53:47.075] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:50:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:55:55.213] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 07:55:55.213] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T11:55:53Z","org.device":[{"itemkey":"battery","value":13,"timestamp":"2026-06-23T11:55:53Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T11:55:53Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T11:55:53Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T11:55:53Z","message":""}]} [2026-06-23 07:55:55.219] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:55:53Z", "value" => 13}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:55:53Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:55:53Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:55:53Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T11:55:53Z"} [2026-06-23 07:55:55.219] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 07:55:55.224] [DEBUG] QUERY OK source="tms_terminals" db=5.1ms idle=831.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:55:55.226] [INFO ] Terminal updated: 61250424798001 [2026-06-23 07:55:55.241] [DEBUG] QUERY OK source="tms_terminals" db=14.8ms idle=594.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:55:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:55:55.243] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=17.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:55:55.270] [DEBUG] QUERY OK source="tms_terminals" db=24.6ms idle=4.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:55:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:55:55.290] [DEBUG] QUERY OK db=18.9ms idle=28.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T11:55:53Z", ~N[2026-06-23 07:55:55], ~N[2026-06-23 07:55:55]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:55:55.291] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41435, oid: "org-id-placeholder", upload_time: "2026-06-23T11:55:53Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:55], updated_at: ~N[2026-06-23 07:55:55]} [2026-06-23 07:55:55.291] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T11:55:53Z", "value" => 13} [2026-06-23 07:55:55.370] [DEBUG] QUERY OK db=35.3ms queue=42.8ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:55:53Z", "13", "battery", 41435, ~N[2026-06-23 07:55:55], ~N[2026-06-23 07:55:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:55.371] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334871, itemkey: "battery", value: "13", timestamp: "2026-06-23T11:55:53Z", message: nil, status_log_id: 41435, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:55], updated_at: ~N[2026-06-23 07:55:55]}} [2026-06-23 07:55:55.371] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T11:55:53Z", "value" => 50} [2026-06-23 07:55:55.406] [DEBUG] QUERY OK db=31.8ms idle=82.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T11:55:53Z", "50", "memory", 41435, ~N[2026-06-23 07:55:55], ~N[2026-06-23 07:55:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:55.406] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334873, itemkey: "memory", value: "50", timestamp: "2026-06-23T11:55:53Z", message: "Normal", status_log_id: 41435, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:55], updated_at: ~N[2026-06-23 07:55:55]}} [2026-06-23 07:55:55.407] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T11:55:53Z", "value" => 50} [2026-06-23 07:55:55.429] [DEBUG] QUERY OK db=18.9ms queue=1.2ms idle=15.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:55:53Z", "50", "cpu", 41435, ~N[2026-06-23 07:55:55], ~N[2026-06-23 07:55:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:55.429] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334875, itemkey: "cpu", value: "50", timestamp: "2026-06-23T11:55:53Z", message: nil, status_log_id: 41435, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:55], updated_at: ~N[2026-06-23 07:55:55]}} [2026-06-23 07:55:55.429] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T11:55:53Z", "value" => "online"} [2026-06-23 07:55:55.495] [DEBUG] QUERY OK db=24.8ms queue=40.6ms idle=24.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T11:55:53Z", "online", "network", 41435, ~N[2026-06-23 07:55:55], ~N[2026-06-23 07:55:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:55.495] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334877, itemkey: "network", value: "online", timestamp: "2026-06-23T11:55:53Z", message: nil, status_log_id: 41435, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:55], updated_at: ~N[2026-06-23 07:55:55]}} [2026-06-23 07:55:55.496] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 07:55:55.498] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:55:55.524] [DEBUG] QUERY OK source="tms_terminals" db=21.9ms idle=74.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:55:55.525] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:55:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:33:50]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:55:58.422] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:55:58.423] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T23:06:01Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T23:06:01Z","value":"58"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T23:06:01Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T23:06:01Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T23:06:01Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T23:06:01Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T23:06:01Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T23:06:01Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T23:06:01Z","vendor":"MoreFun"} [2026-06-23 07:55:58.423] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T23:06:01Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T23:06:01Z", "value" => "58"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T23:06:01Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T23:06:01Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T23:06:01Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T23:06:01Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T23:06:01Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T23:06:01Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T23:06:01Z", "vendor" => "MoreFun"} [2026-06-23 07:55:58.423] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:55:58.423] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:55:58.423] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:55:58.426] [DEBUG] QUERY OK source="parameter_templates" db=2.5ms idle=636.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:55:58.428] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=24.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:55:58.432] [DEBUG] QUERY OK source="parameter_template_values" db=3.3ms idle=2.2ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:55:58.434] [DEBUG] QUERY OK source="parameter_definitions" db=0.7ms queue=1.1ms idle=4.0ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:55:58.437] [DEBUG] QUERY OK source="pos_terminal" db=1.9ms idle=3.0ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:55:58.477] [DEBUG] QUERY OK source="pos_merchant" db=37.3ms queue=2.2ms idle=2.9ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:55:58.481] [DEBUG] QUERY OK db=2.5ms queue=1.7ms idle=1837.5ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:55:58.481] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:55:58.485] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms queue=0.1ms idle=46.8ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:55:58.485] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:55:58.486] [DEBUG] QUERY OK source="address" db=0.5ms idle=8.3ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:55:58.486] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:55:58.491] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:55:58.534] [DEBUG] QUERY OK db=41.5ms idle=6.5ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "89c2744d9fc386d2803077cf040b29f881a5814cf55750fd537d54b9459d347a", 3875, 927, ~U[2026-06-23 07:55:58Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:55:58.534] [INFO ] AutoPushService: Created push log 30640 for MF919 params.zip [2026-06-23 07:55:58.535] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 3875, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:55:58.535] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:55:58.537] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:55:58.540] [DEBUG] QUERY OK source="config_file_versions" db=2.4ms idle=51.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:55:58.550] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:55:58.613] [DEBUG] QUERY OK db=60.1ms queue=0.2ms idle=20.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "388f8fb8269e43e38f3e2eb267ace610c2f5a7bd3e24c5a83aada123b3717101", 2884, 17947, ~U[2026-06-23 07:55:58Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:55:58.614] [INFO ] AutoPushService: Created push log 30642 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:55:58.614] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 2884, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:55:58.614] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:55:58.615] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:55:58.618] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms queue=0.5ms idle=76.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:55:58.618] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:55:58.621] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms decode=0.2ms queue=0.2ms idle=5.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:55:58.621] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:55:58.626] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:55:58.626] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:55:58.627] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:55:58.629] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=10.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:55:58.629] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:55:58.629] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:55:58.631] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=10.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:55:58.633] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:55:58.656] [DEBUG] QUERY OK source="tms_terminals" db=20.0ms idle=4.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:55:58], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:55:58.661] [DEBUG] QUERY OK source="parameter_templates" db=4.0ms idle=25.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:55:58.670] [DEBUG] QUERY OK source="config_file_versions" db=8.5ms idle=7.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:55:58.670] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:55:58.676] [DEBUG] QUERY OK source="tms_terminals" db=4.8ms idle=10.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:55:58.685] [DEBUG] QUERY OK source="tms_terminals" db=7.6ms idle=7.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:55:58], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:55:58.699] [DEBUG] QUERY OK db=13.9ms idle=9.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T23:06:01Z", ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:55:58.699] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41437, oid: "organization_id", upload_time: "2026-06-22T23:06:01Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]} [2026-06-23 07:55:58.700] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T23:06:01Z", "value" => "online"} [2026-06-23 07:55:58.726] [DEBUG] QUERY OK db=26.2ms idle=15.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T23:06:01Z", "online", "status", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.726] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334879, itemkey: "status", value: "online", timestamp: "2026-06-22T23:06:01Z", message: "Terminal status update", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.727] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:55:58.729] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T23:06:01Z", "value" => "58"} [2026-06-23 07:55:58.729] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:55:58.763] [DEBUG] QUERY OK db=33.4ms idle=30.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T23:06:01Z", "58", "battery", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.763] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334881, itemkey: "battery", value: "58", timestamp: "2026-06-22T23:06:01Z", message: "Battery level", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.763] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T23:06:01Z", "value" => "online"} [2026-06-23 07:55:58.776] [DEBUG] QUERY OK db=11.4ms idle=37.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T23:06:01Z", "online", "network", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.776] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334883, itemkey: "network", value: "online", timestamp: "2026-06-22T23:06:01Z", message: "Network connectivity", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.776] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:55:58.777] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T23:06:01Z", "value" => "0"} [2026-06-23 07:55:58.777] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:55:58.803] [DEBUG] QUERY OK db=25.6ms idle=14.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T23:06:01Z", "0", "cpu", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.803] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334885, itemkey: "cpu", value: "0", timestamp: "2026-06-22T23:06:01Z", message: "CPU usage percentage", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.803] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T23:06:01Z", "value" => "1.0.0"} [2026-06-23 07:55:58.849] [DEBUG] QUERY OK db=43.6ms idle=29.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T23:06:01Z", "1.0.0", "parameter_config", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.849] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334887, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T23:06:01Z", message: "Current parameters version", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.849] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T23:06:01Z", "value" => "1.0.1"} [2026-06-23 07:55:58.865] [DEBUG] QUERY OK db=15.0ms idle=46.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T23:06:01Z", "1.0.1", "emv_config", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.865] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334889, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T23:06:01Z", message: "Current EMV config version", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.865] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T23:06:01Z", "value" => ""} [2026-06-23 07:55:58.902] [DEBUG] QUERY OK db=36.3ms queue=0.4ms idle=16.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T23:06:01Z", "keys_config", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.902] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334891, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T23:06:01Z", message: "Current keys config version", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.903] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T23:06:01Z", "value" => ""} [2026-06-23 07:55:58.955] [DEBUG] QUERY OK db=8.7ms queue=43.3ms idle=38.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T23:06:01Z", "application", 41437, ~N[2026-06-23 07:55:58], ~N[2026-06-23 07:55:58]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:55:58.955] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334893, itemkey: "application", value: nil, timestamp: "2026-06-22T23:06:01Z", message: "Current application version", status_log_id: 41437, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:55:58], updated_at: ~N[2026-06-23 07:55:58]}} [2026-06-23 07:55:58.956] [WARN ] Unexpected async result [2026-06-23 07:55:58.956] [WARN ] Unexpected async result [2026-06-23 07:55:58.958] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=55.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:55:58.959] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:55:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:55:58]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:56:06.955] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:56:06.955] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T23:06:10Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T23:06:10Z","value":"58"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T23:06:10Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T23:06:10Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T23:06:10Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T23:06:10Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T23:06:10Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T23:06:10Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T23:06:10Z","vendor":"MoreFun"} [2026-06-23 07:56:06.955] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T23:06:10Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T23:06:10Z", "value" => "58"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T23:06:10Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T23:06:10Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T23:06:10Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T23:06:10Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T23:06:10Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T23:06:10Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T23:06:10Z", "vendor" => "MoreFun"} [2026-06-23 07:56:06.955] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:56:06.956] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:56:06.956] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:56:06.965] [DEBUG] QUERY OK source="parameter_templates" db=9.6ms idle=1317.7ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:56:06.968] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=501.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:56:06.972] [DEBUG] QUERY OK source="parameter_template_values" db=3.8ms idle=2.3ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:56:06.980] [DEBUG] QUERY OK source="parameter_definitions" db=0.8ms queue=3.2ms idle=7.7ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:56:06.987] [DEBUG] QUERY OK source="pos_terminal" db=1.7ms idle=13.2ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:56:07.022] [DEBUG] QUERY OK source="pos_merchant" db=34.2ms queue=0.1ms idle=7.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:56:07.028] [DEBUG] QUERY OK db=1.9ms queue=4.4ms idle=1374.5ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:56:07.028] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:56:07.032] [DEBUG] QUERY OK source="pos_terminal_data" db=3.4ms idle=41.5ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:56:07.032] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:56:07.034] [DEBUG] QUERY OK source="address" db=1.9ms idle=10.7ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:56:07.034] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:56:07.041] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:56:07.066] [DEBUG] QUERY OK db=23.5ms idle=10.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "c275d786db875e2d858aa49aa60a2886e2aa40e51f0d15be92198bda0d5dd9bd", 10594, 927, ~U[2026-06-23 07:56:07Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:56:07.067] [INFO ] AutoPushService: Created push log 30644 for MF919 params.zip [2026-06-23 07:56:07.067] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 10594, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:56:07.067] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:56:07.067] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:56:07.074] [DEBUG] QUERY OK source="config_file_versions" db=2.0ms idle=37.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:56:07.091] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:56:07.114] [DEBUG] QUERY OK db=16.6ms idle=31.2ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "3f34c692a98bed7b88d6b5166b50140a39a80b8cf30e55ceedf58f9c02df07f7", 10658, 17947, ~U[2026-06-23 07:56:07Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:56:07.114] [INFO ] AutoPushService: Created push log 30646 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:56:07.114] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 10658, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:56:07.116] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:56:07.116] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:56:07.117] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=43.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:56:07.117] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:56:07.120] [DEBUG] QUERY OK source="tms_terminals" db=2.7ms idle=3.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:56:07.120] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:56:07.128] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:56:07.128] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:56:07.129] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:56:07.133] [DEBUG] QUERY OK source="config_file_versions" db=4.2ms idle=11.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:56:07.134] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:56:07.134] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:56:07.137] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=14.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:56:07.137] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:56:07.157] [DEBUG] QUERY OK source="tms_terminals" db=17.6ms idle=6.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:56:07], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:56:07.161] [DEBUG] QUERY OK source="parameter_templates" db=2.1ms idle=22.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:56:07.162] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms idle=4.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:56:07.164] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:56:07.166] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=3.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:56:07.174] [DEBUG] QUERY OK source="tms_terminals" db=7.9ms idle=4.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:56:07], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:56:07.197] [DEBUG] QUERY OK db=21.6ms idle=8.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T23:06:10Z", ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:56:07.197] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41439, oid: "organization_id", upload_time: "2026-06-22T23:06:10Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]} [2026-06-23 07:56:07.197] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T23:06:10Z", "value" => "online"} [2026-06-23 07:56:07.218] [DEBUG] QUERY OK db=20.8ms queue=0.1ms idle=22.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T23:06:10Z", "online", "status", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.219] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334895, itemkey: "status", value: "online", timestamp: "2026-06-22T23:06:10Z", message: "Terminal status update", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.219] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:56:07.223] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T23:06:10Z", "value" => "58"} [2026-06-23 07:56:07.224] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:56:07.264] [DEBUG] QUERY OK db=40.8ms idle=26.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T23:06:10Z", "58", "battery", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.265] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334897, itemkey: "battery", value: "58", timestamp: "2026-06-22T23:06:10Z", message: "Battery level", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.268] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T23:06:10Z", "value" => "online"} [2026-06-23 07:56:07.299] [DEBUG] QUERY OK db=30.6ms queue=0.3ms idle=49.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T23:06:10Z", "online", "network", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.300] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334899, itemkey: "network", value: "online", timestamp: "2026-06-22T23:06:10Z", message: "Network connectivity", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.300] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:56:07.304] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T23:06:10Z", "value" => "0"} [2026-06-23 07:56:07.303] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:56:07.325] [DEBUG] QUERY OK db=21.3ms idle=39.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T23:06:10Z", "0", "cpu", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.326] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334901, itemkey: "cpu", value: "0", timestamp: "2026-06-22T23:06:10Z", message: "CPU usage percentage", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.326] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T23:06:10Z", "value" => "1.0.0"} [2026-06-23 07:56:07.366] [DEBUG] QUERY OK db=38.9ms idle=27.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T23:06:10Z", "1.0.0", "parameter_config", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.366] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334903, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T23:06:10Z", message: "Current parameters version", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.366] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T23:06:10Z", "value" => "1.0.1"} [2026-06-23 07:56:07.395] [DEBUG] QUERY OK db=26.5ms queue=1.4ms idle=41.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T23:06:10Z", "1.0.1", "emv_config", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.395] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334905, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T23:06:10Z", message: "Current EMV config version", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.395] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T23:06:10Z", "value" => ""} [2026-06-23 07:56:07.411] [DEBUG] QUERY OK db=15.3ms idle=30.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T23:06:10Z", "keys_config", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.412] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334907, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T23:06:10Z", message: "Current keys config version", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.412] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T23:06:10Z", "value" => ""} [2026-06-23 07:56:07.438] [DEBUG] QUERY OK db=26.3ms idle=17.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T23:06:10Z", "application", 41439, ~N[2026-06-23 07:56:07], ~N[2026-06-23 07:56:07]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:07.439] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334909, itemkey: "application", value: nil, timestamp: "2026-06-22T23:06:10Z", message: "Current application version", status_log_id: 41439, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:07], updated_at: ~N[2026-06-23 07:56:07]}} [2026-06-23 07:56:07.439] [WARN ] Unexpected async result [2026-06-23 07:56:07.439] [WARN ] Unexpected async result [2026-06-23 07:56:07.442] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms queue=1.2ms idle=27.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:56:07.443] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:55:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:07]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:56:51.997] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 07:56:51.997] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-22T23:06:55Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-22T23:06:55Z","value":"58"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-22T23:06:55Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-22T23:06:55Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-22T23:06:55Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-22T23:06:55Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-22T23:06:55Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-22T23:06:55Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-22T23:06:55Z","vendor":"MoreFun"} [2026-06-23 07:56:51.997] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T23:06:55Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T23:06:55Z", "value" => "58"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T23:06:55Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T23:06:55Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T23:06:55Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T23:06:55Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T23:06:55Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T23:06:55Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-22T23:06:55Z", "vendor" => "MoreFun"} [2026-06-23 07:56:51.997] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:56:51.997] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 07:56:52.003] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 07:56:52.007] [DEBUG] QUERY OK source="parameter_templates" db=3.3ms idle=1368.0ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:56:52.010] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=374.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:56:52.012] [DEBUG] QUERY OK source="parameter_template_values" db=1.6ms idle=3.6ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:56:52.016] [DEBUG] QUERY OK source="parameter_definitions" db=2.8ms queue=0.9ms idle=3.3ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:56:52.018] [DEBUG] QUERY OK source="pos_terminal" db=1.0ms idle=5.7ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:56:52.057] [DEBUG] QUERY OK source="pos_merchant" db=38.8ms idle=2.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:56:52.060] [DEBUG] QUERY OK db=0.6ms queue=1.1ms idle=1413.2ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 07:56:52.060] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 07:56:52.064] [DEBUG] QUERY OK source="pos_terminal_data" db=3.8ms idle=42.3ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:56:52.064] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 07:56:52.067] [DEBUG] QUERY OK source="address" db=1.8ms idle=7.2ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:56:52.067] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 07:56:52.078] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 07:56:52.120] [DEBUG] QUERY OK db=37.7ms queue=0.3ms idle=15.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a8bb21d84e367dec399002c103cc0dc90b60bf90128c55db4960b183e40a2eb3", 10850, 927, ~U[2026-06-23 07:56:52Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:56:52.120] [INFO ] AutoPushService: Created push log 30649 for MF919 params.zip [2026-06-23 07:56:52.122] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 10850, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:56:52.122] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:56:52.122] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 07:56:52.128] [DEBUG] QUERY OK source="config_file_versions" db=5.4ms idle=55.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:56:52.143] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 07:56:52.165] [DEBUG] QUERY OK db=19.3ms idle=27.6ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "144ca899218885f67f4e1c199a2a2dc72ae8e9230c866fd9bbb534f6c9d28d3f", 10914, 17947, ~U[2026-06-23 07:56:52Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:56:52.168] [INFO ] AutoPushService: Created push log 30651 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 07:56:52.168] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 10914, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 07:56:52.168] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 07:56:52.168] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 07:56:52.175] [DEBUG] QUERY OK source="config_file_versions" db=6.5ms idle=42.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:56:52.175] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 07:56:52.179] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=12.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:56:52.179] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:56:52.182] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:56:52.183] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:56:52.184] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:56:52.186] [DEBUG] QUERY OK source="config_file_versions" db=1.6ms idle=9.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 07:56:52.188] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 07:56:52.188] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 07:56:52.190] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=8.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:56:52.190] [INFO ] Terminal updated: 98250623730001 [2026-06-23 07:56:52.209] [DEBUG] QUERY OK source="tms_terminals" db=17.9ms idle=4.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:56:52], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:56:52.211] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms queue=0.6ms idle=18.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:56:52.214] [DEBUG] QUERY OK source="config_file_versions" db=2.7ms idle=2.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:56:52.214] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 07:56:52.222] [DEBUG] QUERY OK source="tms_terminals" db=7.6ms idle=3.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:56:52.230] [DEBUG] QUERY OK source="tms_terminals" db=7.1ms idle=8.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:56:52], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:56:52.256] [DEBUG] QUERY OK db=23.9ms idle=10.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-22T23:06:55Z", ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:56:52.256] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41442, oid: "organization_id", upload_time: "2026-06-22T23:06:55Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]} [2026-06-23 07:56:52.257] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-22T23:06:55Z", "value" => "online"} [2026-06-23 07:56:52.290] [DEBUG] QUERY OK db=32.9ms idle=27.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-22T23:06:55Z", "online", "status", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.291] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334912, itemkey: "status", value: "online", timestamp: "2026-06-22T23:06:55Z", message: "Terminal status update", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.291] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 07:56:52.292] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:56:52.292] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-22T23:06:55Z", "value" => "58"} [2026-06-23 07:56:52.311] [DEBUG] QUERY OK db=18.1ms idle=36.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-22T23:06:55Z", "58", "battery", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.311] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334914, itemkey: "battery", value: "58", timestamp: "2026-06-22T23:06:55Z", message: "Battery level", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.311] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-22T23:06:55Z", "value" => "online"} [2026-06-23 07:56:52.329] [DEBUG] QUERY OK db=16.2ms queue=0.6ms idle=21.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-22T23:06:55Z", "online", "network", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.329] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334916, itemkey: "network", value: "online", timestamp: "2026-06-22T23:06:55Z", message: "Network connectivity", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.329] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 07:56:52.329] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-22T23:06:55Z", "value" => "0"} [2026-06-23 07:56:52.330] [INFO ] Terminal 98250623730001 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:56:52.369] [DEBUG] QUERY OK db=35.3ms idle=22.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-22T23:06:55Z", "0", "cpu", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.372] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334918, itemkey: "cpu", value: "0", timestamp: "2026-06-22T23:06:55Z", message: "CPU usage percentage", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.372] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-22T23:06:55Z", "value" => "1.0.0"} [2026-06-23 07:56:52.398] [DEBUG] QUERY OK db=25.1ms idle=44.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-22T23:06:55Z", "1.0.0", "parameter_config", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.400] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334920, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-22T23:06:55Z", message: "Current parameters version", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.400] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-22T23:06:55Z", "value" => "1.0.1"} [2026-06-23 07:56:52.418] [DEBUG] QUERY OK db=15.3ms idle=34.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-22T23:06:55Z", "1.0.1", "emv_config", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.419] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334922, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-22T23:06:55Z", message: "Current EMV config version", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.419] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-22T23:06:55Z", "value" => ""} [2026-06-23 07:56:52.452] [DEBUG] QUERY OK db=32.5ms idle=21.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-22T23:06:55Z", "keys_config", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.453] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334924, itemkey: "keys_config", value: nil, timestamp: "2026-06-22T23:06:55Z", message: "Current keys config version", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.455] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-22T23:06:55Z", "value" => ""} [2026-06-23 07:56:52.484] [DEBUG] QUERY OK db=28.0ms queue=0.2ms idle=37.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-22T23:06:55Z", "application", 41442, ~N[2026-06-23 07:56:52], ~N[2026-06-23 07:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:56:52.484] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334926, itemkey: "application", value: nil, timestamp: "2026-06-22T23:06:55Z", message: "Current application version", status_log_id: 41442, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:56:52], updated_at: ~N[2026-06-23 07:56:52]}} [2026-06-23 07:56:52.485] [WARN ] Unexpected async result [2026-06-23 07:56:52.485] [WARN ] Unexpected async result [2026-06-23 07:56:52.486] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=33.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:56:52.496] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:55:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 07:57:47.671] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 07:57:47.675] [DEBUG] QUERY OK source="tms_terminals" db=3.6ms idle=789.8ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 07:57:47.677] [DEBUG] QUERY OK source="filter_usage" db=0.4ms queue=0.1ms idle=12.3ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 07:57:47.677] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 07:57:49.500] [INFO ] Running offline device check... [2026-06-23 07:57:49.501] [INFO ] Starting offline device check... [2026-06-23 07:57:49.509] [DEBUG] QUERY OK source="tms_terminals" db=7.5ms idle=608.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 07:57:49.525] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.8ms idle=63.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.538] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.0ms idle=17.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.544] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.9ms idle=12.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.547] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=6.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.550] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.552] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.553] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.556] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.559] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.572] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.577] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms queue=0.1ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.592] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.7ms queue=2.7ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.597] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=15.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.600] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.602] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.603] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.619] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.5ms queue=2.7ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.623] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms queue=0.1ms idle=15.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.626] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.630] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.636] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.1ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=13.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.652] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=11.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.668] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.670] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.671] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.677] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.678] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.683] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=1.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.684] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.689] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.695] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.696] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.2ms idle=6.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.698] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.700] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms queue=0.5ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 07:57:49.703] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 07:57:49.703] [INFO ] Offline device check completed successfully [2026-06-23 07:58:46.742] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 07:58:46.742] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T07:58:46Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T07:58:46Z","value":"95"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T07:58:46Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T07:58:46Z","value":"7"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T07:58:46Z","value":"60"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T07:58:46Z","value":"13.024635608308017"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T07:58:46Z","value":"77.63981801457703"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T07:58:46Z","vendor":"softpos"} [2026-06-23 07:58:46.743] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:58:46Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:58:46Z", "value" => "95"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:58:46Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:58:46Z", "value" => "7"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:58:46Z", "value" => "60"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:58:46Z", "value" => "13.024635608308017"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:58:46Z", "value" => "77.63981801457703"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T07:58:46Z", "vendor" => "softpos"} [2026-06-23 07:58:46.743] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 07:58:46.743] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 07:58:46.743] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 07:58:46.744] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=612.5ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 07:58:46.748] [DEBUG] QUERY OK source="tms_terminals" db=4.1ms idle=75.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 07:58:46.752] [DEBUG] QUERY OK source="parameter_template_values" db=3.0ms idle=4.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:58:46.756] [DEBUG] QUERY OK source="parameter_definitions" db=2.1ms queue=0.9ms idle=4.1ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 07:58:46.757] [DEBUG] QUERY OK source="pos_terminal" db=0.8ms idle=4.3ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 07:58:46.796] [DEBUG] QUERY OK source="pos_merchant" db=38.9ms idle=1.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 07:58:46.799] [DEBUG] QUERY OK db=0.9ms queue=1.5ms idle=1126.7ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 07:58:46.799] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 07:58:46.802] [DEBUG] QUERY OK source="pos_terminal_data" db=2.6ms idle=42.2ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 07:58:46.804] [DEBUG] QUERY OK source="address" db=1.9ms idle=6.0ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 07:58:46.805] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 07:58:46.815] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 07:58:46.849] [DEBUG] QUERY OK db=33.3ms idle=13.7ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "8cf6be6bf747e486aa50648ae87f04b5198c6c64cbcaedd7d80ec5758abf6f6f", 4035, 946, ~U[2026-06-23 07:58:46Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 07:58:46], ~N[2026-06-23 07:58:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 07:58:46.851] [INFO ] AutoPushService: Created push log 30653 for MF919 params.zip [2026-06-23 07:58:46.851] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 4035, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:58:46.851] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:58:46.852] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 07:58:46.853] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms idle=47.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 07:58:46.862] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 07:58:46.890] [DEBUG] QUERY OK db=26.6ms idle=14.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a0cb9f0a6679b9526e3d3bd7a6c26ba66784baed8112a5e7fdb7d81119468b18", 4099, 2334, ~U[2026-06-23 07:58:46Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 07:58:46], ~N[2026-06-23 07:58:46]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 07:58:46.891] [INFO ] AutoPushService: Created push log 30655 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 07:58:46.891] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 4099, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 07:58:46.891] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 07:58:46.897] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 07:58:46.901] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=46.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 07:58:46.901] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 07:58:46.905] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=12.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 07:58:46.905] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 07:58:46.911] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 07:58:46.911] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:58:46.911] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 07:58:46.911] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 07:58:46.911] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 07:58:46.915] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=10.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 07:58:46.916] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 07:58:46.919] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=12.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 07:58:46], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 07:58:46.921] [DEBUG] QUERY OK source="parameter_templates" db=0.8ms queue=0.2ms idle=4.6ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 07:58:46.923] [DEBUG] QUERY OK source="config_file_versions" db=1.3ms idle=2.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 07:58:46.924] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 07:58:46.927] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms idle=4.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 07:58:46.942] [DEBUG] QUERY OK source="tms_terminals" db=11.4ms queue=2.0ms idle=4.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 07:58:46], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 07:58:46.967] [DEBUG] QUERY OK db=24.2ms queue=0.1ms idle=16.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T07:58:46Z", ~N[2026-06-23 07:58:46], ~N[2026-06-23 07:58:46]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 07:58:46.968] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41443, oid: "organization_id", upload_time: "2026-06-23T07:58:46Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:46], updated_at: ~N[2026-06-23 07:58:46]} [2026-06-23 07:58:46.969] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T07:58:46Z", "value" => "online"} [2026-06-23 07:58:47.001] [DEBUG] QUERY OK db=31.5ms queue=0.1ms idle=28.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T07:58:46Z", "online", "status", 41443, ~N[2026-06-23 07:58:46], ~N[2026-06-23 07:58:46]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.001] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334927, itemkey: "status", value: "online", timestamp: "2026-06-23T07:58:46Z", message: "Terminal status update", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:46], updated_at: ~N[2026-06-23 07:58:46]}} [2026-06-23 07:58:47.001] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 07:58:47.001] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T07:58:46Z", "value" => "95"} [2026-06-23 07:58:47.002] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:58:47.021] [DEBUG] QUERY OK db=18.8ms idle=34.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T07:58:46Z", "95", "battery", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.022] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334929, itemkey: "battery", value: "95", timestamp: "2026-06-23T07:58:46Z", message: "Battery level", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.022] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T07:58:46Z", "value" => "online"} [2026-06-23 07:58:47.037] [DEBUG] QUERY OK db=13.5ms queue=0.2ms idle=22.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T07:58:46Z", "online", "network", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.037] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334931, itemkey: "network", value: "online", timestamp: "2026-06-23T07:58:46Z", message: "Network connectivity", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.037] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 07:58:47.038] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 07:58:47.039] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T07:58:46Z", "value" => "7"} [2026-06-23 07:58:47.073] [DEBUG] QUERY OK db=33.8ms idle=18.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T07:58:46Z", "7", "cpu", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.074] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334933, itemkey: "cpu", value: "7", timestamp: "2026-06-23T07:58:46Z", message: "CPU usage percentage", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.075] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T07:58:46Z", "value" => "60"} [2026-06-23 07:58:47.106] [DEBUG] QUERY OK db=30.2ms decode=0.2ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T07:58:46Z", "60", "memory", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.106] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334935, itemkey: "memory", value: "60", timestamp: "2026-06-23T07:58:46Z", message: "Memory usage percentage", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.107] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:58:47.159] [DEBUG] QUERY OK db=12.0ms queue=40.5ms idle=34.0ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.160] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334937, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.162] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 07:58:47.227] [DEBUG] QUERY OK db=22.8ms queue=41.4ms idle=29.7ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.229] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334939, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.229] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 07:58:47.246] [DEBUG] QUERY OK db=16.7ms idle=69.6ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.246] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334941, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.246] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 07:58:47.272] [DEBUG] QUERY OK db=24.9ms idle=19.3ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.272] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334943, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.272] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T07:58:46Z", "value" => "13.024635608308017"} [2026-06-23 07:58:47.314] [DEBUG] QUERY OK db=41.5ms idle=26.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T07:58:46Z", "13.024635608308017", "latitude", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.314] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334945, itemkey: "latitude", value: "13.024635608308017", timestamp: "2026-06-23T07:58:46Z", message: "Device Latitude", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.315] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T07:58:46Z", "value" => "77.63981801457703"} [2026-06-23 07:58:47.332] [DEBUG] QUERY OK db=16.5ms idle=43.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T07:58:46Z", "77.63981801457703", "longitude", 41443, ~N[2026-06-23 07:58:47], ~N[2026-06-23 07:58:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 07:58:47.332] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334947, itemkey: "longitude", value: "77.63981801457703", timestamp: "2026-06-23T07:58:46Z", message: "Device Longitude", status_log_id: 41443, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 07:58:47], updated_at: ~N[2026-06-23 07:58:47]}} [2026-06-23 07:58:47.332] [WARN ] Unexpected async result [2026-06-23 07:58:47.332] [WARN ] Unexpected async result [2026-06-23 07:58:47.336] [DEBUG] QUERY OK source="tms_terminals" db=3.8ms idle=18.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 07:58:47.338] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 07:55:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 08:00:55.246] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:00:55.247] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:00:53Z","org.device":[{"itemkey":"battery","value":13,"timestamp":"2026-06-23T12:00:53Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:00:53Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:00:53Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:00:53Z","message":""}]} [2026-06-23 08:00:55.247] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:00:53Z", "value" => 13}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:00:53Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:00:53Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:00:53Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:00:53Z"} [2026-06-23 08:00:55.247] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:00:55.252] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms queue=0.7ms idle=1560.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:00:55.252] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:00:55.352] [DEBUG] QUERY OK source="tms_terminals" db=99.3ms idle=593.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:00:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:00:55.354] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=100.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:00:55.406] [DEBUG] QUERY OK source="tms_terminals" db=51.8ms idle=2.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:00:55], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:00:55.512] [DEBUG] QUERY OK db=105.2ms idle=52.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:00:53Z", ~N[2026-06-23 08:00:55], ~N[2026-06-23 08:00:55]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:00:55.512] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41446, oid: "org-id-placeholder", upload_time: "2026-06-23T12:00:53Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:00:55], updated_at: ~N[2026-06-23 08:00:55]} [2026-06-23 08:00:55.513] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:00:53Z", "value" => 13} [2026-06-23 08:00:55.618] [DEBUG] QUERY OK db=104.1ms queue=0.9ms idle=108.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:00:53Z", "13", "battery", 41446, ~N[2026-06-23 08:00:55], ~N[2026-06-23 08:00:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:00:55.619] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334950, itemkey: "battery", value: "13", timestamp: "2026-06-23T12:00:53Z", message: nil, status_log_id: 41446, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:00:55], updated_at: ~N[2026-06-23 08:00:55]}} [2026-06-23 08:00:55.619] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:00:53Z", "value" => 50} [2026-06-23 08:00:55.739] [DEBUG] QUERY OK db=119.8ms idle=107.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:00:53Z", "50", "memory", 41446, ~N[2026-06-23 08:00:55], ~N[2026-06-23 08:00:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:00:55.740] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334952, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:00:53Z", message: "Normal", status_log_id: 41446, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:00:55], updated_at: ~N[2026-06-23 08:00:55]}} [2026-06-23 08:00:55.740] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:00:53Z", "value" => 50} [2026-06-23 08:00:56.127] [DEBUG] QUERY OK db=386.6ms idle=78.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:00:53Z", "50", "cpu", 41446, ~N[2026-06-23 08:00:55], ~N[2026-06-23 08:00:55]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:00:56.127] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334954, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:00:53Z", message: nil, status_log_id: 41446, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:00:55], updated_at: ~N[2026-06-23 08:00:55]}} [2026-06-23 08:00:56.127] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:00:53Z", "value" => "online"} [2026-06-23 08:00:56.205] [DEBUG] QUERY OK db=74.1ms queue=3.6ms idle=388.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:00:53Z", "online", "network", 41446, ~N[2026-06-23 08:00:56], ~N[2026-06-23 08:00:56]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:00:56.206] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334955, itemkey: "network", value: "online", timestamp: "2026-06-23T12:00:53Z", message: nil, status_log_id: 41446, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:00:56], updated_at: ~N[2026-06-23 08:00:56]}} [2026-06-23 08:00:56.206] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:00:56.206] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:00:56.208] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=79.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 08:00:56.209] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 08:00:55]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 08:01:44.247] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:01:44.247] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"3382122-01-07T18:04:22Z","org.device":[{"itemkey":"status","value":"online","timestamp":"3382122-01-07T18:04:22Z","message":"Device Connected"}]} [2026-06-23 08:01:44.247] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "3382122-01-07T18:04:22Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "3382122-01-07T18:04:22Z"} [2026-06-23 08:01:44.248] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:01:44.252] [DEBUG] QUERY OK source="tms_terminals" db=3.6ms idle=552.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:01:44.252] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:01:44.269] [DEBUG] QUERY OK source="tms_terminals" db=16.6ms idle=398.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:01:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:01:44.271] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=0.1ms idle=18.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:01:44.294] [DEBUG] QUERY OK source="tms_terminals" db=22.7ms queue=0.1ms idle=2.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:01:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:01:44.329] [DEBUG] QUERY OK db=33.8ms queue=0.1ms idle=23.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "3382122-01-07T18:04:22Z", ~N[2026-06-23 08:01:44], ~N[2026-06-23 08:01:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:01:44.332] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41447, oid: "org-id-placeholder", upload_time: "3382122-01-07T18:04:22Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:01:44], updated_at: ~N[2026-06-23 08:01:44]} [2026-06-23 08:01:44.332] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Device Connected", "timestamp" => "3382122-01-07T18:04:22Z", "value" => "online"} [2026-06-23 08:01:44.355] [DEBUG] QUERY OK db=22.2ms idle=38.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Connected", "3382122-01-07T18:04:22Z", "online", "status", 41447, ~N[2026-06-23 08:01:44], ~N[2026-06-23 08:01:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:01:44.355] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334957, itemkey: "status", value: "online", timestamp: "3382122-01-07T18:04:22Z", message: "Device Connected", status_log_id: 41447, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:01:44], updated_at: ~N[2026-06-23 08:01:44]}} [2026-06-23 08:01:44.357] [INFO ] Setting terminal 61250424798001 status to 'online' from status itemkey [2026-06-23 08:01:44.357] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:01:44.360] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.3ms idle=30.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 08:01:44.361] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 08:01:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 08:02:49.705] [INFO ] Running offline device check... [2026-06-23 08:02:49.705] [INFO ] Starting offline device check... [2026-06-23 08:02:49.713] [DEBUG] QUERY OK source="tms_terminals" db=3.3ms idle=1528.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:02:49.728] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=523.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=15.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.742] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.744] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.745] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.746] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.747] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.749] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.753] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.764] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.8ms queue=2.8ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.767] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=11.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.780] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.5ms queue=1.5ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.788] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms queue=0.7ms idle=14.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.791] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.794] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.795] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.810] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.812] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=15.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.814] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.818] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.819] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.821] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.840] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.842] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=19.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.843] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.2ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.854] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.0ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.860] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms queue=0.9ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.865] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.872] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.879] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms queue=0.1ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.882] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms queue=0.1ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.885] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.886] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.889] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=0.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.893] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.896] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.9ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.899] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.901] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:02:49.904] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:02:49.904] [INFO ] Offline device check completed successfully [2026-06-23 08:03:47.081] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 08:03:47.081] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T08:03:46Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T08:03:46Z","value":"94"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T08:03:46Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T08:03:46Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T08:03:46Z","value":"60"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T08:03:46Z","value":"13.024635608308017"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T08:03:46Z","value":"77.63981801457703"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T08:03:46Z","vendor":"softpos"} [2026-06-23 08:03:47.082] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T08:03:46Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T08:03:46Z", "value" => "94"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T08:03:46Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T08:03:46Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T08:03:46Z", "value" => "60"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T08:03:46Z", "value" => "13.024635608308017"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T08:03:46Z", "value" => "77.63981801457703"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T08:03:46Z", "vendor" => "softpos"} [2026-06-23 08:03:47.082] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 08:03:47.082] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 08:03:47.083] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 08:03:47.088] [DEBUG] QUERY OK source="parameter_templates" db=5.3ms idle=341.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 08:03:47.089] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=0.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 08:03:47.092] [DEBUG] QUERY OK source="parameter_template_values" db=2.3ms idle=0.1ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 08:03:47.100] [DEBUG] QUERY OK source="parameter_definitions" db=3.8ms queue=3.4ms idle=0.3ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 08:03:47.144] [DEBUG] QUERY OK source="pos_terminal" db=40.7ms idle=1.9ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 08:03:47.148] [DEBUG] QUERY OK source="pos_merchant" db=1.7ms idle=30.6ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 08:03:47.154] [DEBUG] QUERY OK db=2.0ms queue=4.3ms idle=1406.5ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 08:03:47.155] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 08:03:47.157] [DEBUG] QUERY OK source="pos_terminal_data" db=1.6ms idle=13.2ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 08:03:47.169] [DEBUG] QUERY OK source="address" db=7.7ms queue=2.6ms idle=9.4ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 08:03:47.169] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 08:03:47.176] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 08:03:47.226] [DEBUG] QUERY OK db=46.6ms idle=22.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "d244ec2406a69c3520683459e29ed9ae1daa52752d7f5ee8c381b5114f4c5585", 4419, 946, ~U[2026-06-23 08:03:47Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 08:03:47.227] [INFO ] AutoPushService: Created push log 30657 for MF919 params.zip [2026-06-23 08:03:47.227] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 4419, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 08:03:47.228] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 08:03:47.228] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 08:03:47.230] [DEBUG] QUERY OK source="config_file_versions" db=2.2ms idle=65.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 08:03:47.246] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 08:03:47.262] [DEBUG] QUERY OK db=12.9ms idle=22.4ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "87294afb3428bd21f8151b4d931b79102463c092a3dcfec5da35e039d0dce9b8", 11330, 2334, ~U[2026-06-23 08:03:47Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 08:03:47.262] [INFO ] AutoPushService: Created push log 30659 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 08:03:47.264] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 11330, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 08:03:47.264] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 08:03:47.266] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 08:03:47.272] [DEBUG] QUERY OK source="config_file_versions" db=5.8ms queue=0.2ms idle=35.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 08:03:47.273] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 08:03:47.276] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms queue=0.7ms idle=12.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 08:03:47.276] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 08:03:47.282] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 08:03:47.283] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 08:03:47.283] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 08:03:47.283] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 08:03:47.284] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 08:03:47.288] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms idle=15.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:03:47.289] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 08:03:47.296] [DEBUG] QUERY OK source="tms_terminals" db=6.6ms idle=13.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:03:47], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:03:47.299] [DEBUG] QUERY OK source="parameter_templates" db=2.9ms idle=8.1ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 08:03:47.300] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=3.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 08:03:47.300] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 08:03:47.303] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=1.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:03:47.340] [DEBUG] QUERY OK source="tms_terminals" db=34.5ms queue=2.0ms idle=3.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:03:47], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:03:47.360] [DEBUG] QUERY OK db=19.8ms idle=37.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T08:03:46Z", ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:03:47.361] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41450, oid: "organization_id", upload_time: "2026-06-23T08:03:46Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]} [2026-06-23 08:03:47.362] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T08:03:46Z", "value" => "online"} [2026-06-23 08:03:47.389] [DEBUG] QUERY OK db=27.0ms idle=21.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T08:03:46Z", "online", "status", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.389] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334960, itemkey: "status", value: "online", timestamp: "2026-06-23T08:03:46Z", message: "Terminal status update", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.391] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 08:03:47.393] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T08:03:46Z", "value" => "94"} [2026-06-23 08:03:47.393] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:03:47.434] [DEBUG] QUERY OK db=39.8ms idle=33.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T08:03:46Z", "94", "battery", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.437] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334962, itemkey: "battery", value: "94", timestamp: "2026-06-23T08:03:46Z", message: "Battery level", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.439] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T08:03:46Z", "value" => "online"} [2026-06-23 08:03:47.458] [DEBUG] QUERY OK db=14.8ms queue=0.5ms idle=53.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T08:03:46Z", "online", "network", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.459] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334964, itemkey: "network", value: "online", timestamp: "2026-06-23T08:03:46Z", message: "Network connectivity", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.459] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 08:03:47.459] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T08:03:46Z", "value" => "0"} [2026-06-23 08:03:47.459] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:03:47.489] [DEBUG] QUERY OK db=29.2ms idle=25.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T08:03:46Z", "0", "cpu", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.489] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334966, itemkey: "cpu", value: "0", timestamp: "2026-06-23T08:03:46Z", message: "CPU usage percentage", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.489] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T08:03:46Z", "value" => "60"} [2026-06-23 08:03:47.528] [DEBUG] QUERY OK db=35.0ms queue=0.1ms idle=34.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T08:03:46Z", "60", "memory", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.528] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334968, itemkey: "memory", value: "60", timestamp: "2026-06-23T08:03:46Z", message: "Memory usage percentage", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.528] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 08:03:47.596] [DEBUG] QUERY OK db=25.5ms queue=41.5ms idle=23.5ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.596] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334970, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.596] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 08:03:47.695] [DEBUG] QUERY OK db=55.3ms queue=41.6ms idle=69.4ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.695] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334972, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.695] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 08:03:47.751] [DEBUG] QUERY OK db=55.2ms idle=99.2ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.753] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334974, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.753] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 08:03:47.779] [DEBUG] QUERY OK db=23.9ms idle=60.9ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.780] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334976, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.780] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T08:03:46Z", "value" => "13.024635608308017"} [2026-06-23 08:03:47.845] [DEBUG] QUERY OK db=62.6ms idle=31.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T08:03:46Z", "13.024635608308017", "latitude", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.846] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334978, itemkey: "latitude", value: "13.024635608308017", timestamp: "2026-06-23T08:03:46Z", message: "Device Latitude", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.846] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T08:03:46Z", "value" => "77.63981801457703"} [2026-06-23 08:03:47.897] [DEBUG] QUERY OK db=46.9ms idle=70.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T08:03:46Z", "77.63981801457703", "longitude", 41450, ~N[2026-06-23 08:03:47], ~N[2026-06-23 08:03:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:03:47.897] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334980, itemkey: "longitude", value: "77.63981801457703", timestamp: "2026-06-23T08:03:46Z", message: "Device Longitude", status_log_id: 41450, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:03:47], updated_at: ~N[2026-06-23 08:03:47]}} [2026-06-23 08:03:47.900] [WARN ] Unexpected async result [2026-06-23 08:03:47.900] [WARN ] Unexpected async result [2026-06-23 08:03:47.904] [DEBUG] QUERY OK source="tms_terminals" db=4.7ms idle=54.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 08:03:47.906] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 08:01:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 08:06:44.398] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:06:44.398] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:06:42Z","org.device":[{"itemkey":"battery","value":15,"timestamp":"2026-06-23T12:06:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:06:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:06:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:06:42Z","message":""}]} [2026-06-23 08:06:44.398] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:06:42Z", "value" => 15}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:06:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:06:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:06:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:06:42Z"} [2026-06-23 08:06:44.398] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:06:44.400] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=1056.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:06:44.401] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:06:44.414] [DEBUG] QUERY OK source="tms_terminals" db=12.9ms idle=55.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:06:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:06:44.419] [DEBUG] QUERY OK source="tms_terminals" db=4.7ms idle=13.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:06:44.438] [DEBUG] QUERY OK source="tms_terminals" db=17.9ms queue=0.7ms idle=5.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:06:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:06:44.464] [DEBUG] QUERY OK db=24.7ms queue=0.1ms idle=19.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:06:42Z", ~N[2026-06-23 08:06:44], ~N[2026-06-23 08:06:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:06:44.464] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41451, oid: "org-id-placeholder", upload_time: "2026-06-23T12:06:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:06:44], updated_at: ~N[2026-06-23 08:06:44]} [2026-06-23 08:06:44.465] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:06:42Z", "value" => 15} [2026-06-23 08:06:44.518] [DEBUG] QUERY OK db=12.0ms queue=40.9ms idle=27.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:06:42Z", "15", "battery", 41451, ~N[2026-06-23 08:06:44], ~N[2026-06-23 08:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:06:44.521] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334981, itemkey: "battery", value: "15", timestamp: "2026-06-23T12:06:42Z", message: nil, status_log_id: 41451, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:06:44], updated_at: ~N[2026-06-23 08:06:44]}} [2026-06-23 08:06:44.521] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:06:42Z", "value" => 50} [2026-06-23 08:06:44.544] [DEBUG] QUERY OK db=21.9ms idle=58.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:06:42Z", "50", "memory", 41451, ~N[2026-06-23 08:06:44], ~N[2026-06-23 08:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:06:44.544] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334983, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:06:42Z", message: "Normal", status_log_id: 41451, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:06:44], updated_at: ~N[2026-06-23 08:06:44]}} [2026-06-23 08:06:44.545] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:06:42Z", "value" => 50} [2026-06-23 08:06:44.578] [DEBUG] QUERY OK db=32.3ms idle=27.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:06:42Z", "50", "cpu", 41451, ~N[2026-06-23 08:06:44], ~N[2026-06-23 08:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:06:44.578] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334985, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:06:42Z", message: nil, status_log_id: 41451, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:06:44], updated_at: ~N[2026-06-23 08:06:44]}} [2026-06-23 08:06:44.578] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:06:42Z", "value" => "online"} [2026-06-23 08:06:44.633] [DEBUG] QUERY OK db=13.1ms queue=40.5ms idle=34.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:06:42Z", "online", "network", 41451, ~N[2026-06-23 08:06:44], ~N[2026-06-23 08:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:06:44.633] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334987, itemkey: "network", value: "online", timestamp: "2026-06-23T12:06:42Z", message: nil, status_log_id: 41451, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:06:44], updated_at: ~N[2026-06-23 08:06:44]}} [2026-06-23 08:06:44.633] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:06:44.634] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:06:44.638] [DEBUG] QUERY OK source="tms_terminals" db=4.2ms idle=56.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 08:06:44.641] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 08:06:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 08:07:49.904] [INFO ] Running offline device check... [2026-06-23 08:07:49.904] [INFO ] Starting offline device check... [2026-06-23 08:07:49.907] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=1116.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:07:49.917] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.4ms idle=335.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.924] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.926] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.927] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.928] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.929] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.930] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.931] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.933] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.939] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.3ms queue=0.2ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.940] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.949] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.952] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.955] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.956] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.956] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.966] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=9.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.968] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.969] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.971] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.972] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.988] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.3ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.989] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=16.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.990] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:49.998] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms queue=0.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.000] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=8.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.003] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.005] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.006] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.011] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.012] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.012] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.013] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.014] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.016] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.016] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.017] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:07:50.019] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:07:50.019] [INFO ] Offline device check completed successfully [2026-06-23 08:08:47.407] [INFO ] Received status update for terminal 397889130000000_88913585 [2026-06-23 08:08:47.410] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T08:08:47Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T08:08:47Z","value":"94"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T08:08:47Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T08:08:47Z","value":"0"},{"itemkey":"memory","message":"Memory usage percentage","timestamp":"2026-06-23T08:08:47Z","value":"60"},{"itemkey":"emv_config","message":"EMV Config","timestamp":"","value":"1.0.0"},{"itemkey":"parameter_config","message":"Parameter config","timestamp":"","value":"1.0.0"},{"itemkey":"application","message":"application","timestamp":"","value":""},{"itemkey":"keys_config","message":"keys","timestamp":"","value":""},{"itemkey":"latitude","message":"Device Latitude","timestamp":"2026-06-23T08:08:47Z","value":"13.024635608308017"},{"itemkey":"longitude","message":"Device Longitude","timestamp":"2026-06-23T08:08:47Z","value":"77.63981801457703"}],"model":"softpos","oid":"organization_id","sn":"397889130000000_88913585","uploadTime":"2026-06-23T08:08:47Z","vendor":"softpos"} [2026-06-23 08:08:47.410] [INFO ] Decoded JSON: %{"model" => "softpos", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T08:08:47Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T08:08:47Z", "value" => "94"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T08:08:47Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T08:08:47Z", "value" => "0"}, %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T08:08:47Z", "value" => "60"}, %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"}, %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""}, %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""}, %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T08:08:47Z", "value" => "13.024635608308017"}, %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T08:08:47Z", "value" => "77.63981801457703"}], "sn" => "397889130000000_88913585", "uploadTime" => "2026-06-23T08:08:47Z", "vendor" => "softpos"} [2026-06-23 08:08:47.411] [INFO ] Extracted versions for 397889130000000_88913585: %{application: "", emv_config: "1.0.0", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 08:08:47.411] [INFO ] Detected missing versions for 397889130000000_88913585, triggering auto-push [2026-06-23 08:08:47.411] [INFO ] AutoPushService: Triggering auto-push for 397889130000000_88913585 (softpos softpos) - missing version [2026-06-23 08:08:47.420] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=622.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 08:08:47.423] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms idle=617.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 08:08:47.424] [DEBUG] QUERY OK source="parameter_template_values" db=0.5ms queue=0.2ms idle=2.8ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [12] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 08:08:47.425] [DEBUG] QUERY OK source="parameter_definitions" db=1.0ms queue=0.4ms idle=1.3ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 08:08:47.427] [DEBUG] QUERY OK source="pos_terminal" db=0.7ms idle=2.4ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 08:08:47.467] [DEBUG] QUERY OK source="pos_merchant" db=39.7ms idle=1.5ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [129] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 08:08:47.468] [DEBUG] QUERY OK db=0.7ms queue=0.7ms idle=656.1ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["397889130000000"] [2026-06-23 08:08:47.469] [INFO ] ParamsZipBuilder: Merchant info for merchantid=397889130000000 - business_name=pmerchant, QR_USE_SSL=1, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid=238a401d-e408-4c23-8d78-c276a35bfeee [2026-06-23 08:08:47.470] [DEBUG] QUERY OK source="pos_terminal_data" db=0.7ms idle=42.0ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["88913585"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 08:08:47.471] [DEBUG] QUERY OK source="address" db=1.1ms queue=0.1ms idle=3.1ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [403] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 08:08:47.471] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=397889130000000_88913585, pos_merchant.merchantid="397889130000000" [2026-06-23 08:08:47.472] [INFO ] ParamsZipBuilder: params.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/params.zip [2026-06-23 08:08:47.520] [DEBUG] QUERY OK db=42.3ms queue=2.4ms idle=5.1ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "f9245ce0c7545baa228a471f274220a015f38dda369bd5275e132b46a5e18fb9", 805, 946, ~U[2026-06-23 08:08:47Z], "priv/ota/397889130000000_88913585/params.zip", 51, "softpos", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 12, "softpos", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 08:08:47.520] [INFO ] AutoPushService: Created push log 30660 for MF919 params.zip [2026-06-23 08:08:47.523] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/params.zip", "requestId" => 805, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 08:08:47.523] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 08:08:47.523] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 397889130000000_88913585 [2026-06-23 08:08:47.525] [DEBUG] QUERY OK source="config_file_versions" db=1.1ms idle=52.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 08:08:47.530] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 397889130000000_88913585 at priv/ota/397889130000000_88913585/l3config.zip (source: priv/static/Mypinpad/1.0.0/YSDK_L3_configuration.json) [2026-06-23 08:08:47.547] [DEBUG] QUERY OK db=13.4ms idle=13.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "1e3769210c2233554cd8f773860682346d5f3cc5d84068789f6cd812995e5b34", 869, 2334, ~U[2026-06-23 08:08:47Z], "priv/ota/397889130000000_88913585/l3config.zip", 51, "softpos", "full", "softpos", "emv_config", "missing_version", "1.0.0", ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 08:08:47.547] [INFO ] AutoPushService: Created push log 30662 for MF919 l3config.zip (version: 1.0.0) [2026-06-23 08:08:47.547] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/397889130000000_88913585/l3config.zip", "requestId" => 869, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 08:08:47.549] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 397889130000000_88913585 on topic: /ota/pFppbioOCKlo5c8E/397889130000000_88913585/update [2026-06-23 08:08:47.549] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 397889130000000_88913585 [2026-06-23 08:08:47.551] [DEBUG] QUERY OK source="config_file_versions" db=0.9ms queue=0.1ms idle=24.9ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 08:08:47.551] [INFO ] KeysConfigService: Generating keys.json for 397889130000000_88913585 (softpos) [2026-06-23 08:08:47.552] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=4.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 08:08:47.552] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 397889130000000_88913585 with params: %{"kekKcv" => "112233", "model" => "softpos", "serialNumber" => "397889130000000_88913585", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 08:08:47.555] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 08:08:47.555] [ERROR] KeysConfigService: Failed to generate keys for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 08:08:47.555] [ERROR] AutoPushService: Failed to generate keys.json for 397889130000000_88913585: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 08:08:47.556] [INFO ] AutoPushService: Skipping application push for softpos [2026-06-23 08:08:47.556] [INFO ] AutoPushService: Auto-push completed for 397889130000000_88913585 [2026-06-23 08:08:47.557] [DEBUG] QUERY OK source="tms_terminals" db=0.4ms idle=5.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:08:47.558] [INFO ] Terminal updated: 397889130000000_88913585 [2026-06-23 08:08:47.598] [DEBUG] QUERY OK source="tms_terminals" db=25.5ms idle=20.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:08:47], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:08:47.602] [DEBUG] QUERY OK source="parameter_templates" db=1.3ms idle=44.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 08:08:47.603] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=5.0ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "softpos", "softpos"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 08:08:47.603] [DEBUG] VersionComplianceChecker: 397889130000000_88913585 — all versions compliant [2026-06-23 08:08:47.604] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["397889130000000_88913585"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:08:47.628] [DEBUG] QUERY OK source="tms_terminals" db=23.7ms idle=1.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:08:47], 51] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:08:47.644] [DEBUG] QUERY OK db=14.9ms queue=0.1ms idle=24.4ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [51, "organization_id", "2026-06-23T08:08:47Z", ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:08:47.644] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41454, oid: "organization_id", upload_time: "2026-06-23T08:08:47Z", terminal_id: 51, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]} [2026-06-23 08:08:47.644] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T08:08:47Z", "value" => "online"} [2026-06-23 08:08:47.672] [DEBUG] QUERY OK db=27.6ms idle=16.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T08:08:47Z", "online", "status", 41454, ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:47.672] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334990, itemkey: "status", value: "online", timestamp: "2026-06-23T08:08:47Z", message: "Terminal status update", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]}} [2026-06-23 08:08:47.672] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from status itemkey [2026-06-23 08:08:47.682] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T08:08:47Z", "value" => "94"} [2026-06-23 08:08:47.682] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:08:47.709] [DEBUG] QUERY OK db=27.0ms idle=38.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T08:08:47Z", "94", "battery", 41454, ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:47.710] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334992, itemkey: "battery", value: "94", timestamp: "2026-06-23T08:08:47Z", message: "Battery level", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]}} [2026-06-23 08:08:47.711] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T08:08:47Z", "value" => "online"} [2026-06-23 08:08:47.726] [DEBUG] QUERY OK db=14.3ms idle=39.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T08:08:47Z", "online", "network", 41454, ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:47.727] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334994, itemkey: "network", value: "online", timestamp: "2026-06-23T08:08:47Z", message: "Network connectivity", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]}} [2026-06-23 08:08:47.727] [INFO ] Setting terminal 397889130000000_88913585 status to 'online' from network itemkey [2026-06-23 08:08:47.729] [INFO ] Terminal 397889130000000_88913585 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:08:47.730] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T08:08:47Z", "value" => "0"} [2026-06-23 08:08:47.756] [DEBUG] QUERY OK db=25.3ms idle=21.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T08:08:47Z", "0", "cpu", 41454, ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:47.756] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334996, itemkey: "cpu", value: "0", timestamp: "2026-06-23T08:08:47Z", message: "CPU usage percentage", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]}} [2026-06-23 08:08:47.757] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Memory usage percentage", "timestamp" => "2026-06-23T08:08:47Z", "value" => "60"} [2026-06-23 08:08:47.803] [DEBUG] QUERY OK db=45.7ms idle=31.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Memory usage percentage", "2026-06-23T08:08:47Z", "60", "memory", 41454, ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:47.803] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 334998, itemkey: "memory", value: "60", timestamp: "2026-06-23T08:08:47Z", message: "Memory usage percentage", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]}} [2026-06-23 08:08:47.803] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "EMV Config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 08:08:47.868] [DEBUG] QUERY OK db=21.2ms queue=42.6ms idle=47.5ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["EMV Config", "1.0.0", "emv_config", 41454, ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:47.868] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335000, itemkey: "emv_config", value: "1.0.0", timestamp: nil, message: "EMV Config", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]}} [2026-06-23 08:08:47.868] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Parameter config", "timestamp" => "", "value" => "1.0.0"} [2026-06-23 08:08:48.018] [DEBUG] QUERY OK db=108.9ms queue=40.9ms idle=61.1ms INSERT INTO `tms_terminal_status_items` (`message`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Parameter config", "1.0.0", "parameter_config", 41454, ~N[2026-06-23 08:08:47], ~N[2026-06-23 08:08:47]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:48.021] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335003, itemkey: "parameter_config", value: "1.0.0", timestamp: nil, message: "Parameter config", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:47], updated_at: ~N[2026-06-23 08:08:47]}} [2026-06-23 08:08:48.021] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "application", "timestamp" => "", "value" => ""} [2026-06-23 08:08:48.055] [DEBUG] QUERY OK db=28.9ms idle=158.5ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["application", "application", 41454, ~N[2026-06-23 08:08:48], ~N[2026-06-23 08:08:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:48.057] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335006, itemkey: "application", value: nil, timestamp: nil, message: "application", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:48], updated_at: ~N[2026-06-23 08:08:48]}} [2026-06-23 08:08:48.058] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "keys", "timestamp" => "", "value" => ""} [2026-06-23 08:08:48.092] [DEBUG] QUERY OK db=32.9ms idle=41.5ms INSERT INTO `tms_terminal_status_items` (`message`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) ["keys", "keys_config", 41454, ~N[2026-06-23 08:08:48], ~N[2026-06-23 08:08:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:48.092] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335008, itemkey: "keys_config", value: nil, timestamp: nil, message: "keys", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:48], updated_at: ~N[2026-06-23 08:08:48]}} [2026-06-23 08:08:48.092] [INFO ] Saving status item: %{"itemkey" => "latitude", "message" => "Device Latitude", "timestamp" => "2026-06-23T08:08:47Z", "value" => "13.024635608308017"} [2026-06-23 08:08:48.105] [DEBUG] QUERY OK db=12.3ms idle=37.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Latitude", "2026-06-23T08:08:47Z", "13.024635608308017", "latitude", 41454, ~N[2026-06-23 08:08:48], ~N[2026-06-23 08:08:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:48.105] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335009, itemkey: "latitude", value: "13.024635608308017", timestamp: "2026-06-23T08:08:47Z", message: "Device Latitude", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:48], updated_at: ~N[2026-06-23 08:08:48]}} [2026-06-23 08:08:48.105] [INFO ] Saving status item: %{"itemkey" => "longitude", "message" => "Device Longitude", "timestamp" => "2026-06-23T08:08:47Z", "value" => "77.63981801457703"} [2026-06-23 08:08:48.123] [DEBUG] QUERY OK db=15.9ms queue=0.7ms idle=14.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Device Longitude", "2026-06-23T08:08:47Z", "77.63981801457703", "longitude", 41454, ~N[2026-06-23 08:08:48], ~N[2026-06-23 08:08:48]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:08:48.123] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335010, itemkey: "longitude", value: "77.63981801457703", timestamp: "2026-06-23T08:08:47Z", message: "Device Longitude", status_log_id: 41454, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:08:48], updated_at: ~N[2026-06-23 08:08:48]}} [2026-06-23 08:08:48.125] [WARN ] Unexpected async result [2026-06-23 08:08:48.127] [WARN ] Unexpected async result [2026-06-23 08:08:48.128] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms queue=0.2ms idle=20.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 08:08:48.129] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 08:06:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 08:11:44.394] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:11:44.395] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:11:42Z","org.device":[{"itemkey":"battery","value":17,"timestamp":"2026-06-23T12:11:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:11:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:11:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:11:42Z","message":""}]} [2026-06-23 08:11:44.395] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:11:42Z", "value" => 17}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:11:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:11:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:11:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:11:42Z"} [2026-06-23 08:11:44.395] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:11:44.403] [DEBUG] QUERY OK source="tms_terminals" db=5.7ms idle=1582.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:11:44.403] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:11:44.412] [DEBUG] QUERY OK source="tms_terminals" db=8.6ms idle=944.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:11:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:11:44.416] [DEBUG] QUERY OK source="tms_terminals" db=3.3ms queue=0.3ms idle=11.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:11:44.442] [DEBUG] QUERY OK source="tms_terminals" db=25.1ms queue=0.1ms idle=4.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:11:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:11:44.477] [DEBUG] QUERY OK db=33.5ms idle=27.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:11:42Z", ~N[2026-06-23 08:11:44], ~N[2026-06-23 08:11:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:11:44.477] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41456, oid: "org-id-placeholder", upload_time: "2026-06-23T12:11:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:11:44], updated_at: ~N[2026-06-23 08:11:44]} [2026-06-23 08:11:44.477] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:11:42Z", "value" => 17} [2026-06-23 08:11:44.556] [DEBUG] QUERY OK db=37.7ms queue=40.8ms idle=15.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:11:42Z", "17", "battery", 41456, ~N[2026-06-23 08:11:44], ~N[2026-06-23 08:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:11:44.557] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335012, itemkey: "battery", value: "17", timestamp: "2026-06-23T12:11:42Z", message: nil, status_log_id: 41456, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:11:44], updated_at: ~N[2026-06-23 08:11:44]}} [2026-06-23 08:11:44.558] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:11:42Z", "value" => 50} [2026-06-23 08:11:44.587] [DEBUG] QUERY OK db=27.2ms queue=0.9ms idle=81.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:11:42Z", "50", "memory", 41456, ~N[2026-06-23 08:11:44], ~N[2026-06-23 08:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:11:44.587] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335014, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:11:42Z", message: "Normal", status_log_id: 41456, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:11:44], updated_at: ~N[2026-06-23 08:11:44]}} [2026-06-23 08:11:44.588] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:11:42Z", "value" => 50} [2026-06-23 08:11:44.606] [DEBUG] QUERY OK db=17.2ms idle=32.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:11:42Z", "50", "cpu", 41456, ~N[2026-06-23 08:11:44], ~N[2026-06-23 08:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:11:44.606] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335016, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:11:42Z", message: nil, status_log_id: 41456, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:11:44], updated_at: ~N[2026-06-23 08:11:44]}} [2026-06-23 08:11:44.606] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:11:42Z", "value" => "online"} [2026-06-23 08:11:44.670] [DEBUG] QUERY OK db=22.9ms queue=41.0ms idle=19.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:11:42Z", "online", "network", 41456, ~N[2026-06-23 08:11:44], ~N[2026-06-23 08:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:11:44.671] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335018, itemkey: "network", value: "online", timestamp: "2026-06-23T12:11:42Z", message: nil, status_log_id: 41456, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:11:44], updated_at: ~N[2026-06-23 08:11:44]}} [2026-06-23 08:11:44.671] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:11:44.672] [INFO ] Terminal 61250424798001 status changed to: online. Updated grid with 6 terminals [2026-06-23 08:11:44.673] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=66.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`status` IN ('online','Online','connected')) [] ↳ PlatformWeb.TerminalLive.Index.handle_info/2, at: lib/platform_web/live/terminal_live/index.ex:376 [2026-06-23 08:11:44.675] [INFO ] Updated terminals: [%TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 2, serial_number: "61250424798001", oid: "org-id-placeholder", status: "online", model: nil, vendor: nil, area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: nil, keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2025-08-09 09:22:09], updated_at: ~N[2026-06-23 08:11:44]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 13, serial_number: "98251226730002", oid: nil, status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-02-27 05:29:03], updated_at: ~N[2026-06-23 07:37:33]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 19, serial_number: "98250623730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-03-25 11:14:09], updated_at: ~N[2026-06-23 07:56:52]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 33, serial_number: "98251226730001", oid: "organization_id", status: "online", model: "MF919", vendor: "MoreFun", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: nil, system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: nil, emv_config_version: "1.0.1", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-04-15 06:09:54], updated_at: ~N[2026-06-23 06:46:30]}, %TmsCore.TerminalManagement.TmsTerminal{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminals">, id: 51, serial_number: "397889130000000_88913585", oid: "organization_id", status: "online", model: "softpos", vendor: "softpos", area: nil, group: nil, imei: nil, imei2: nil, cpuid: nil, mac: nil, app_version: nil, data_version: "1.0.0", system_version: nil, secure_firmware: nil, factory_time: nil, boot_version: nil, pubkey: nil, appkey: nil, locked: nil, hardware_version: nil, driver_version: nil, pro_version: nil, module_version: nil, wifi_version: nil, remark: nil, otp_id: nil, netmac: nil, heart: nil, parameter_config_version: "1.0.0", emv_config_version: "1.0.0", keys_config_version: nil, kek_kcv: "112233", slot_number: 1, last_keys_update: nil, merchant_id: nil, location_code: nil, deployment_type: nil, tier: nil, __event_data__: nil, status_logs: #Ecto.Association.NotLoaded, group_memberships: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-08 09:46:50], ...}] [2026-06-23 08:12:47.677] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 08:12:47.678] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms idle=974.7ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 08:12:47.680] [DEBUG] QUERY OK source="filter_usage" db=1.1ms idle=867.8ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 08:12:47.680] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 08:12:50.019] [INFO ] Running offline device check... [2026-06-23 08:12:50.019] [INFO ] Starting offline device check... [2026-06-23 08:12:50.021] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms queue=0.1ms idle=300.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:12:50.030] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=136.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.037] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=8.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.040] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.042] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.043] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.044] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.045] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.050] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.053] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.061] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.064] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.073] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.2ms queue=0.2ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.080] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.8ms queue=0.1ms idle=10.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.088] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.0ms queue=2.5ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.104] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=15.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.105] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.106] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.108] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.125] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=16.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.135] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.142] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.4ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.145] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.146] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.3ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.153] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.154] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.155] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.157] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.158] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.160] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.162] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.163] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.164] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.166] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:12:50.166] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:12:50.166] [INFO ] Offline device check completed successfully [2026-06-23 08:15:00.496] [INFO ] [SlaMonitorWorker] Running at hour=8 checking settlement_date=2026-06-22 [2026-06-23 08:15:00.508] [DEBUG] QUERY OK source="settlement_mis" db=11.4ms queue=0.6ms idle=31.1ms SELECT TRUE FROM `settlement_mis` AS s0 WHERE (s0.`mis_date` = ?) AND (s0.`approval_status` = 'approved') LIMIT 1 [~D[2026-06-22]] ↳ SettlementCore.Workers.SlaMonitorWorker.check_mis_approval_sla/1, at: lib/settlement_core/workers/sla_monitor_worker.ex:97 [2026-06-23 08:15:00.509] [WARN ] [SlaMonitorWorker] SLA BREACH: MIS not approved for 2026-06-22 [2026-06-23 08:16:44.408] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:16:44.408] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:16:42Z","org.device":[{"itemkey":"battery","value":18,"timestamp":"2026-06-23T12:16:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:16:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:16:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:16:42Z","message":""}]} [2026-06-23 08:16:44.408] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:16:42Z", "value" => 18}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:16:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:16:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:16:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:16:42Z"} [2026-06-23 08:16:44.408] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:16:44.412] [DEBUG] QUERY OK source="tms_terminals" db=3.0ms idle=1576.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:16:44.412] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:16:44.463] [DEBUG] QUERY OK source="tms_terminals" db=50.7ms idle=772.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:16:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:16:44.467] [DEBUG] QUERY OK source="tms_terminals" db=3.2ms idle=51.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:16:44.494] [DEBUG] QUERY OK source="tms_terminals" db=26.5ms idle=3.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:16:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:16:44.513] [DEBUG] QUERY OK db=19.0ms idle=27.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:16:42Z", ~N[2026-06-23 08:16:44], ~N[2026-06-23 08:16:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:16:44.513] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41458, oid: "org-id-placeholder", upload_time: "2026-06-23T12:16:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:16:44], updated_at: ~N[2026-06-23 08:16:44]} [2026-06-23 08:16:44.514] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:16:42Z", "value" => 18} [2026-06-23 08:16:44.557] [DEBUG] QUERY OK db=42.7ms idle=20.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:16:42Z", "18", "battery", 41458, ~N[2026-06-23 08:16:44], ~N[2026-06-23 08:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:16:44.558] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335020, itemkey: "battery", value: "18", timestamp: "2026-06-23T12:16:42Z", message: nil, status_log_id: 41458, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:16:44], updated_at: ~N[2026-06-23 08:16:44]}} [2026-06-23 08:16:44.558] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:16:42Z", "value" => 50} [2026-06-23 08:16:44.598] [DEBUG] QUERY OK db=39.5ms idle=44.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:16:42Z", "50", "memory", 41458, ~N[2026-06-23 08:16:44], ~N[2026-06-23 08:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:16:44.598] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335022, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:16:42Z", message: "Normal", status_log_id: 41458, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:16:44], updated_at: ~N[2026-06-23 08:16:44]}} [2026-06-23 08:16:44.598] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:16:42Z", "value" => 50} [2026-06-23 08:16:44.617] [DEBUG] QUERY OK db=18.5ms idle=41.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:16:42Z", "50", "cpu", 41458, ~N[2026-06-23 08:16:44], ~N[2026-06-23 08:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:16:44.617] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335024, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:16:42Z", message: nil, status_log_id: 41458, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:16:44], updated_at: ~N[2026-06-23 08:16:44]}} [2026-06-23 08:16:44.618] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:16:42Z", "value" => "online"} [2026-06-23 08:16:44.663] [DEBUG] QUERY OK db=44.9ms idle=20.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:16:42Z", "online", "network", 41458, ~N[2026-06-23 08:16:44], ~N[2026-06-23 08:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:16:44.663] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335026, itemkey: "network", value: "online", timestamp: "2026-06-23T12:16:42Z", message: nil, status_log_id: 41458, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:16:44], updated_at: ~N[2026-06-23 08:16:44]}} [2026-06-23 08:16:44.664] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:17:47.737] [INFO ] Starting scheduled rule validation [2026-06-23 08:17:47.737] [DEBUG] Validating missing assignments [2026-06-23 08:17:47.739] [DEBUG] QUERY OK source="terminal_group_rules" db=0.9ms idle=902.2ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-06-23 08:17:47.741] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=830.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-06-23 08:17:47.742] [DEBUG] Re-applied 0 rules during validation [2026-06-23 08:17:47.743] [DEBUG] Validating invalid assignments [2026-06-23 08:17:47.743] [DEBUG] Validating rule consistency [2026-06-23 08:17:47.743] [DEBUG] Updating group terminal counts [2026-06-23 08:17:47.745] [DEBUG] QUERY OK source="terminal_groups" db=2.0ms idle=4.0ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-06-23 08:17:47.747] [DEBUG] QUERY OK source="terminal_groups" db=1.4ms queue=0.7ms idle=4.2ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-06-23 08:17:47.748] [DEBUG] QUERY OK source="terminal_groups" db=0.7ms idle=2.6ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-06-23 08:17:47.750] [DEBUG] QUERY OK source="terminal_group_rules" db=1.2ms queue=0.1ms idle=1.1ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-06-23 08:17:47.752] [DEBUG] QUERY OK source="terminal_group_rules" db=2.0ms idle=1.7ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-06-23 08:17:47.754] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.3ms idle=2.4ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-06-23 08:17:47.756] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.7ms idle=1.7ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-06-23 08:17:47.758] [DEBUG] QUERY OK source="terminal_group_memberships" db=1.2ms queue=0.3ms idle=2.1ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-06-23 08:17:47.758] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-06-23 08:17:47.758] [INFO ] Rule validation completed - applied 0 fixes [2026-06-23 08:17:50.167] [INFO ] Running offline device check... [2026-06-23 08:17:50.167] [INFO ] Starting offline device check... [2026-06-23 08:17:50.172] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms queue=0.4ms idle=332.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:17:50.184] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.2ms idle=244.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.195] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.4ms idle=12.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.199] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms queue=0.1ms idle=11.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.202] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.204] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.205] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.206] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.207] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.217] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=1.0ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.223] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.225] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms queue=0.1ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.236] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.0ms queue=0.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.245] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.4ms queue=0.1ms idle=11.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.249] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=9.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.250] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.262] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.281] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.0ms idle=12.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.283] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=28.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.285] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.287] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.291] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.293] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.309] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.6ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.311] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.5ms idle=16.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.323] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.1ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.324] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=11.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.327] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.329] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.330] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.335] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.338] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=6.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.339] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.340] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.340] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.344] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms queue=0.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.344] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.345] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.346] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.347] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:17:50.347] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:17:50.348] [INFO ] Offline device check completed successfully [2026-06-23 08:21:44.405] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:21:44.405] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:21:42Z","org.device":[{"itemkey":"battery","value":20,"timestamp":"2026-06-23T12:21:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:21:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:21:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:21:42Z","message":""}]} [2026-06-23 08:21:44.406] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:21:42Z", "value" => 20}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:21:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:21:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:21:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:21:42Z"} [2026-06-23 08:21:44.406] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:21:44.412] [DEBUG] QUERY OK source="tms_terminals" db=5.9ms idle=1539.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:21:44.413] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:21:44.445] [DEBUG] QUERY OK source="tms_terminals" db=31.0ms queue=0.6ms idle=567.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:21:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:21:44.446] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=33.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:21:44.476] [DEBUG] QUERY OK source="tms_terminals" db=29.2ms idle=1.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:21:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:21:44.494] [DEBUG] QUERY OK db=17.6ms idle=29.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:21:42Z", ~N[2026-06-23 08:21:44], ~N[2026-06-23 08:21:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:21:44.494] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41460, oid: "org-id-placeholder", upload_time: "2026-06-23T12:21:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:21:44], updated_at: ~N[2026-06-23 08:21:44]} [2026-06-23 08:21:44.494] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:21:42Z", "value" => 20} [2026-06-23 08:21:44.531] [DEBUG] QUERY OK db=34.5ms queue=1.9ms idle=18.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:21:42Z", "20", "battery", 41460, ~N[2026-06-23 08:21:44], ~N[2026-06-23 08:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:21:44.531] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335028, itemkey: "battery", value: "20", timestamp: "2026-06-23T12:21:42Z", message: nil, status_log_id: 41460, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:21:44], updated_at: ~N[2026-06-23 08:21:44]}} [2026-06-23 08:21:44.532] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:21:42Z", "value" => 50} [2026-06-23 08:21:44.565] [DEBUG] QUERY OK db=31.2ms idle=39.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:21:42Z", "50", "memory", 41460, ~N[2026-06-23 08:21:44], ~N[2026-06-23 08:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:21:44.566] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335030, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:21:42Z", message: "Normal", status_log_id: 41460, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:21:44], updated_at: ~N[2026-06-23 08:21:44]}} [2026-06-23 08:21:44.566] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:21:42Z", "value" => 50} [2026-06-23 08:21:44.579] [DEBUG] QUERY OK db=12.5ms idle=35.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:21:42Z", "50", "cpu", 41460, ~N[2026-06-23 08:21:44], ~N[2026-06-23 08:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:21:44.579] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335032, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:21:42Z", message: nil, status_log_id: 41460, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:21:44], updated_at: ~N[2026-06-23 08:21:44]}} [2026-06-23 08:21:44.580] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:21:42Z", "value" => "online"} [2026-06-23 08:21:44.603] [DEBUG] QUERY OK db=22.5ms idle=15.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:21:42Z", "online", "network", 41460, ~N[2026-06-23 08:21:44], ~N[2026-06-23 08:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:21:44.603] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335034, itemkey: "network", value: "online", timestamp: "2026-06-23T12:21:42Z", message: nil, status_log_id: 41460, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:21:44], updated_at: ~N[2026-06-23 08:21:44]}} [2026-06-23 08:21:44.603] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:22:50.348] [INFO ] Running offline device check... [2026-06-23 08:22:50.348] [INFO ] Starting offline device check... [2026-06-23 08:22:50.350] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms queue=0.1ms idle=472.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:22:50.368] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.0ms idle=196.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.379] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.3ms queue=0.1ms idle=19.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.386] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=12.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.388] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.390] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=1.1ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.392] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.394] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.395] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.397] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.400] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.406] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.412] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.427] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.4ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.434] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=15.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.438] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.439] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.451] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.452] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=12.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.453] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.455] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.456] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.459] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.484] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=25.2ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.489] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=2.4ms idle=26.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.492] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.509] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.7ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.510] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.7ms idle=17.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.514] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.515] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.519] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.527] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.2ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.530] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.537] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=9.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.543] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=11.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.550] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms queue=0.1ms idle=6.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.557] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms queue=0.1ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.562] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=7.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.569] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.570] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:22:50.570] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:22:50.570] [INFO ] Offline device check completed successfully [2026-06-23 08:26:44.396] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:26:44.396] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:26:42Z","org.device":[{"itemkey":"battery","value":21,"timestamp":"2026-06-23T12:26:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:26:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:26:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:26:42Z","message":""}]} [2026-06-23 08:26:44.396] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:26:42Z", "value" => 21}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:26:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:26:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:26:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:26:42Z"} [2026-06-23 08:26:44.397] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:26:44.398] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=1299.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:26:44.402] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:26:44.435] [DEBUG] QUERY OK source="tms_terminals" db=32.6ms idle=304.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:26:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:26:44.437] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=38.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:26:44.457] [DEBUG] QUERY OK source="tms_terminals" db=19.1ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:26:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:26:44.490] [DEBUG] QUERY OK db=33.1ms idle=19.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:26:42Z", ~N[2026-06-23 08:26:44], ~N[2026-06-23 08:26:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:26:44.491] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41462, oid: "org-id-placeholder", upload_time: "2026-06-23T12:26:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:26:44], updated_at: ~N[2026-06-23 08:26:44]} [2026-06-23 08:26:44.491] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:26:42Z", "value" => 21} [2026-06-23 08:26:44.519] [DEBUG] QUERY OK db=25.9ms idle=36.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:26:42Z", "21", "battery", 41462, ~N[2026-06-23 08:26:44], ~N[2026-06-23 08:26:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:26:44.519] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335035, itemkey: "battery", value: "21", timestamp: "2026-06-23T12:26:42Z", message: nil, status_log_id: 41462, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:26:44], updated_at: ~N[2026-06-23 08:26:44]}} [2026-06-23 08:26:44.520] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:26:42Z", "value" => 50} [2026-06-23 08:26:44.544] [DEBUG] QUERY OK db=23.6ms idle=29.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:26:42Z", "50", "memory", 41462, ~N[2026-06-23 08:26:44], ~N[2026-06-23 08:26:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:26:44.544] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335037, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:26:42Z", message: "Normal", status_log_id: 41462, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:26:44], updated_at: ~N[2026-06-23 08:26:44]}} [2026-06-23 08:26:44.544] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:26:42Z", "value" => 50} [2026-06-23 08:26:44.581] [DEBUG] QUERY OK db=34.2ms queue=1.2ms idle=26.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:26:42Z", "50", "cpu", 41462, ~N[2026-06-23 08:26:44], ~N[2026-06-23 08:26:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:26:44.581] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335039, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:26:42Z", message: nil, status_log_id: 41462, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:26:44], updated_at: ~N[2026-06-23 08:26:44]}} [2026-06-23 08:26:44.581] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:26:42Z", "value" => "online"} [2026-06-23 08:26:44.608] [DEBUG] QUERY OK db=26.6ms idle=38.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:26:42Z", "online", "network", 41462, ~N[2026-06-23 08:26:44], ~N[2026-06-23 08:26:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:26:44.609] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335041, itemkey: "network", value: "online", timestamp: "2026-06-23T12:26:42Z", message: nil, status_log_id: 41462, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:26:44], updated_at: ~N[2026-06-23 08:26:44]}} [2026-06-23 08:26:44.609] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:27:47.680] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 08:27:47.682] [DEBUG] QUERY OK source="tms_terminals" db=1.3ms idle=1368.5ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 08:27:47.683] [DEBUG] QUERY OK source="filter_usage" db=0.5ms queue=0.1ms idle=368.2ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 08:27:47.683] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 08:27:50.571] [INFO ] Running offline device check... [2026-06-23 08:27:50.571] [INFO ] Starting offline device check... [2026-06-23 08:27:50.573] [DEBUG] QUERY OK source="tms_terminals" db=1.9ms idle=1252.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:27:50.593] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.1ms idle=251.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.4ms idle=20.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.608] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=14.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.613] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.618] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.620] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.623] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.627] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.6ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.628] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.634] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.643] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms queue=0.4ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.650] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.7ms idle=9.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms idle=7.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=14.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.673] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=7.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.674] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.676] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.692] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.696] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms queue=1.2ms idle=15.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.698] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms queue=0.1ms idle=4.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.700] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.702] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.706] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=1.5ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.719] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.3ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.720] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.2ms idle=13.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.721] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.728] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.729] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.732] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.734] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.735] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.740] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.740] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.741] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.742] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.743] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.744] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.746] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.747] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.748] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.749] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:27:50.749] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:27:50.749] [INFO ] Offline device check completed successfully [2026-06-23 08:31:44.405] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:31:44.405] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:31:42Z","org.device":[{"itemkey":"battery","value":22,"timestamp":"2026-06-23T12:31:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:31:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:31:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:31:42Z","message":""}]} [2026-06-23 08:31:44.405] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:31:42Z", "value" => 22}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:31:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:31:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:31:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:31:42Z"} [2026-06-23 08:31:44.405] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:31:44.407] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=476.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:31:44.407] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:31:44.445] [DEBUG] QUERY OK source="tms_terminals" db=37.1ms idle=54.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:31:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:31:44.447] [DEBUG] QUERY OK source="tms_terminals" db=1.6ms idle=38.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:31:44.491] [DEBUG] QUERY OK source="tms_terminals" db=40.5ms idle=5.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:31:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:31:44.511] [DEBUG] QUERY OK db=19.4ms idle=44.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:31:42Z", ~N[2026-06-23 08:31:44], ~N[2026-06-23 08:31:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:31:44.511] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41464, oid: "org-id-placeholder", upload_time: "2026-06-23T12:31:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:31:44], updated_at: ~N[2026-06-23 08:31:44]} [2026-06-23 08:31:44.512] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:31:42Z", "value" => 22} [2026-06-23 08:31:44.536] [DEBUG] QUERY OK db=23.5ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:31:42Z", "22", "battery", 41464, ~N[2026-06-23 08:31:44], ~N[2026-06-23 08:31:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:31:44.537] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335044, itemkey: "battery", value: "22", timestamp: "2026-06-23T12:31:42Z", message: nil, status_log_id: 41464, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:31:44], updated_at: ~N[2026-06-23 08:31:44]}} [2026-06-23 08:31:44.537] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:31:42Z", "value" => 50} [2026-06-23 08:31:44.581] [DEBUG] QUERY OK db=44.1ms idle=25.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:31:42Z", "50", "memory", 41464, ~N[2026-06-23 08:31:44], ~N[2026-06-23 08:31:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:31:44.582] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335046, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:31:42Z", message: "Normal", status_log_id: 41464, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:31:44], updated_at: ~N[2026-06-23 08:31:44]}} [2026-06-23 08:31:44.582] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:31:42Z", "value" => 50} [2026-06-23 08:31:44.602] [DEBUG] QUERY OK db=19.3ms idle=46.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:31:42Z", "50", "cpu", 41464, ~N[2026-06-23 08:31:44], ~N[2026-06-23 08:31:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:31:44.603] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335048, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:31:42Z", message: nil, status_log_id: 41464, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:31:44], updated_at: ~N[2026-06-23 08:31:44]}} [2026-06-23 08:31:44.603] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:31:42Z", "value" => "online"} [2026-06-23 08:31:44.618] [DEBUG] QUERY OK db=14.9ms idle=21.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:31:42Z", "online", "network", 41464, ~N[2026-06-23 08:31:44], ~N[2026-06-23 08:31:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:31:44.620] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335050, itemkey: "network", value: "online", timestamp: "2026-06-23T12:31:42Z", message: nil, status_log_id: 41464, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:31:44], updated_at: ~N[2026-06-23 08:31:44]}} [2026-06-23 08:31:44.620] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:32:50.750] [INFO ] Running offline device check... [2026-06-23 08:32:50.750] [INFO ] Starting offline device check... [2026-06-23 08:32:50.754] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms queue=0.2ms idle=1121.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:32:50.762] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.4ms idle=119.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.771] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.4ms queue=0.1ms idle=10.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.773] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.774] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.775] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.775] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.776] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.777] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.778] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.780] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.786] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.3ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.788] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.797] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.803] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms queue=0.2ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.806] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=6.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.808] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.809] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.820] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.822] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.7ms idle=11.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.823] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.824] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.826] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.828] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.842] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.843] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.1ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.844] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.852] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.854] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=8.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.856] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.858] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.860] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.864] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.867] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.869] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.870] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.872] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.876] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.877] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:32:50.877] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:32:50.877] [INFO ] Offline device check completed successfully [2026-06-23 08:36:44.397] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:36:44.397] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:36:42Z","org.device":[{"itemkey":"battery","value":23,"timestamp":"2026-06-23T12:36:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:36:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:36:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:36:42Z","message":""}]} [2026-06-23 08:36:44.398] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:36:42Z", "value" => 23}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:36:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:36:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:36:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:36:42Z"} [2026-06-23 08:36:44.398] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:36:44.404] [DEBUG] QUERY OK source="tms_terminals" db=4.2ms queue=0.1ms idle=1328.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:36:44.404] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:36:44.427] [DEBUG] QUERY OK source="tms_terminals" db=22.3ms queue=0.1ms idle=318.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:36:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:36:44.431] [DEBUG] QUERY OK source="tms_terminals" db=3.5ms idle=23.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:36:44.447] [DEBUG] QUERY OK source="tms_terminals" db=14.7ms idle=5.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:36:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:36:44.496] [DEBUG] QUERY OK db=47.4ms queue=0.5ms idle=17.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:36:42Z", ~N[2026-06-23 08:36:44], ~N[2026-06-23 08:36:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:36:44.497] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41466, oid: "org-id-placeholder", upload_time: "2026-06-23T12:36:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:36:44], updated_at: ~N[2026-06-23 08:36:44]} [2026-06-23 08:36:44.497] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:36:42Z", "value" => 23} [2026-06-23 08:36:44.538] [DEBUG] QUERY OK db=40.2ms queue=0.1ms idle=50.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:36:42Z", "23", "battery", 41466, ~N[2026-06-23 08:36:44], ~N[2026-06-23 08:36:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:36:44.538] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335052, itemkey: "battery", value: "23", timestamp: "2026-06-23T12:36:42Z", message: nil, status_log_id: 41466, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:36:44], updated_at: ~N[2026-06-23 08:36:44]}} [2026-06-23 08:36:44.542] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:36:42Z", "value" => 50} [2026-06-23 08:36:44.643] [DEBUG] QUERY OK db=101.2ms idle=45.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:36:42Z", "50", "memory", 41466, ~N[2026-06-23 08:36:44], ~N[2026-06-23 08:36:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:36:44.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335054, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:36:42Z", message: "Normal", status_log_id: 41466, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:36:44], updated_at: ~N[2026-06-23 08:36:44]}} [2026-06-23 08:36:44.644] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:36:42Z", "value" => 50} [2026-06-23 08:36:44.691] [DEBUG] QUERY OK db=47.4ms idle=106.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:36:42Z", "50", "cpu", 41466, ~N[2026-06-23 08:36:44], ~N[2026-06-23 08:36:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:36:44.692] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335056, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:36:42Z", message: nil, status_log_id: 41466, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:36:44], updated_at: ~N[2026-06-23 08:36:44]}} [2026-06-23 08:36:44.692] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:36:42Z", "value" => "online"} [2026-06-23 08:36:44.731] [DEBUG] QUERY OK db=38.8ms idle=48.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:36:42Z", "online", "network", 41466, ~N[2026-06-23 08:36:44], ~N[2026-06-23 08:36:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:36:44.731] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335058, itemkey: "network", value: "online", timestamp: "2026-06-23T12:36:42Z", message: nil, status_log_id: 41466, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:36:44], updated_at: ~N[2026-06-23 08:36:44]}} [2026-06-23 08:36:44.731] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:37:50.878] [INFO ] Running offline device check... [2026-06-23 08:37:50.878] [INFO ] Starting offline device check... [2026-06-23 08:37:50.881] [DEBUG] QUERY OK source="tms_terminals" db=2.6ms queue=0.1ms idle=1848.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:37:50.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=27.8ms idle=955.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.939] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=27.8ms queue=0.1ms idle=29.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.942] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms queue=0.5ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.944] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.949] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.955] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms queue=0.1ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.960] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=6.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.963] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms queue=0.1ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.964] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.968] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.982] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.0ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:50.985] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=14.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.014] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=28.4ms queue=0.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.027] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.4ms queue=1.7ms idle=29.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.029] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=14.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.034] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.038] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms queue=0.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.073] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=34.6ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.075] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=35.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.079] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.083] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=0.4ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.084] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.086] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=40.2ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.128] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=41.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.132] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.158] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=25.7ms queue=0.1ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.161] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=26.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.170] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.2ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.172] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=8.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.175] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.190] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.1ms queue=0.3ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.191] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=15.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.193] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.194] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.197] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.0ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.205] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.8ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.208] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=1.5ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.210] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.212] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:37:51.212] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:37:51.212] [INFO ] Offline device check completed successfully [2026-06-23 08:41:44.433] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:41:44.433] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:41:42Z","org.device":[{"itemkey":"battery","value":24,"timestamp":"2026-06-23T12:41:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:41:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:41:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:41:42Z","message":""}]} [2026-06-23 08:41:44.434] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:41:42Z", "value" => 24}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:41:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:41:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:41:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:41:42Z"} [2026-06-23 08:41:44.434] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:41:44.435] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms idle=531.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:41:44.435] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:41:44.472] [DEBUG] QUERY OK source="tms_terminals" db=36.9ms idle=339.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:41:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:41:44.478] [DEBUG] QUERY OK source="tms_terminals" db=5.8ms idle=37.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:41:44.513] [DEBUG] QUERY OK source="tms_terminals" db=32.2ms queue=2.2ms idle=6.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:41:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:41:44.562] [DEBUG] QUERY OK db=48.5ms idle=35.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:41:42Z", ~N[2026-06-23 08:41:44], ~N[2026-06-23 08:41:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:41:44.563] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41468, oid: "org-id-placeholder", upload_time: "2026-06-23T12:41:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:41:44], updated_at: ~N[2026-06-23 08:41:44]} [2026-06-23 08:41:44.563] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:41:42Z", "value" => 24} [2026-06-23 08:41:44.605] [DEBUG] QUERY OK db=41.7ms idle=49.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:41:42Z", "24", "battery", 41468, ~N[2026-06-23 08:41:44], ~N[2026-06-23 08:41:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:41:44.605] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335060, itemkey: "battery", value: "24", timestamp: "2026-06-23T12:41:42Z", message: nil, status_log_id: 41468, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:41:44], updated_at: ~N[2026-06-23 08:41:44]}} [2026-06-23 08:41:44.605] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:41:42Z", "value" => 50} [2026-06-23 08:41:44.643] [DEBUG] QUERY OK db=37.6ms idle=43.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:41:42Z", "50", "memory", 41468, ~N[2026-06-23 08:41:44], ~N[2026-06-23 08:41:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:41:44.643] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335062, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:41:42Z", message: "Normal", status_log_id: 41468, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:41:44], updated_at: ~N[2026-06-23 08:41:44]}} [2026-06-23 08:41:44.644] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:41:42Z", "value" => 50} [2026-06-23 08:41:44.681] [DEBUG] QUERY OK db=36.2ms queue=0.9ms idle=39.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:41:42Z", "50", "cpu", 41468, ~N[2026-06-23 08:41:44], ~N[2026-06-23 08:41:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:41:44.681] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335064, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:41:42Z", message: nil, status_log_id: 41468, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:41:44], updated_at: ~N[2026-06-23 08:41:44]}} [2026-06-23 08:41:44.682] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:41:42Z", "value" => "online"} [2026-06-23 08:41:44.733] [DEBUG] QUERY OK db=51.3ms idle=38.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:41:42Z", "online", "network", 41468, ~N[2026-06-23 08:41:44], ~N[2026-06-23 08:41:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:41:44.734] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335066, itemkey: "network", value: "online", timestamp: "2026-06-23T12:41:42Z", message: nil, status_log_id: 41468, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:41:44], updated_at: ~N[2026-06-23 08:41:44]}} [2026-06-23 08:41:44.734] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:42:47.684] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 08:42:47.687] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms queue=0.1ms idle=1042.8ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 08:42:47.690] [DEBUG] QUERY OK source="filter_usage" db=2.3ms idle=35.4ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 08:42:47.690] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 08:42:51.213] [INFO ] Running offline device check... [2026-06-23 08:42:51.213] [INFO ] Starting offline device check... [2026-06-23 08:42:51.216] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=1087.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:42:51.278] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=61.4ms idle=512.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.298] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.5ms idle=62.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.302] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=20.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.308] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms queue=0.5ms idle=3.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.312] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.315] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.316] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.318] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.319] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.333] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.382] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=48.4ms idle=14.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.383] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=49.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=44.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.441] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.1ms idle=45.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.461] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.6ms idle=12.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.466] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.2ms idle=20.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.472] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms idle=4.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.511] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=38.4ms idle=7.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.514] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=39.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.519] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.528] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.529] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=8.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.539] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=65.3ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=66.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.607] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.632] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=23.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.635] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=2.0ms idle=25.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.5ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.647] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.1ms queue=2.1ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.656] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=7.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.664] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.0ms queue=0.2ms idle=10.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.669] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms queue=0.1ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.670] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.672] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.675] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.692] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.2ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.695] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.7ms idle=17.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.700] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms queue=0.1ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.708] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.6ms queue=0.1ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.712] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms queue=0.3ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:42:51.712] [INFO ] Offline device check completed. Found 36 offline devices, updated 0 statuses. [2026-06-23 08:42:51.718] [INFO ] Offline device check completed successfully [2026-06-23 08:46:44.404] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:46:44.404] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:46:42Z","org.device":[{"itemkey":"battery","value":25,"timestamp":"2026-06-23T12:46:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:46:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:46:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:46:42Z","message":""}]} [2026-06-23 08:46:44.404] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:46:42Z", "value" => 25}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:46:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:46:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:46:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:46:42Z"} [2026-06-23 08:46:44.404] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:46:44.410] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=5.1ms idle=1245.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:46:44.411] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:46:44.418] [DEBUG] QUERY OK source="tms_terminals" db=6.3ms idle=275.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:46:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:46:44.421] [DEBUG] QUERY OK source="tms_terminals" db=2.8ms idle=8.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:46:44.449] [DEBUG] QUERY OK source="tms_terminals" db=27.2ms queue=0.1ms idle=3.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:46:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:46:44.483] [DEBUG] QUERY OK db=33.6ms queue=0.1ms idle=28.5ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:46:42Z", ~N[2026-06-23 08:46:44], ~N[2026-06-23 08:46:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:46:44.484] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41469, oid: "org-id-placeholder", upload_time: "2026-06-23T12:46:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:46:44], updated_at: ~N[2026-06-23 08:46:44]} [2026-06-23 08:46:44.490] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:46:42Z", "value" => 25} [2026-06-23 08:46:44.505] [DEBUG] QUERY OK db=14.7ms queue=0.1ms idle=41.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:46:42Z", "25", "battery", 41469, ~N[2026-06-23 08:46:44], ~N[2026-06-23 08:46:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:46:44.506] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335068, itemkey: "battery", value: "25", timestamp: "2026-06-23T12:46:42Z", message: nil, status_log_id: 41469, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:46:44], updated_at: ~N[2026-06-23 08:46:44]}} [2026-06-23 08:46:44.507] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:46:42Z", "value" => 50} [2026-06-23 08:46:44.536] [DEBUG] QUERY OK db=29.2ms idle=23.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:46:42Z", "50", "memory", 41469, ~N[2026-06-23 08:46:44], ~N[2026-06-23 08:46:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:46:44.537] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335070, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:46:42Z", message: "Normal", status_log_id: 41469, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:46:44], updated_at: ~N[2026-06-23 08:46:44]}} [2026-06-23 08:46:44.537] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:46:42Z", "value" => 50} [2026-06-23 08:46:44.576] [DEBUG] QUERY OK db=34.4ms idle=35.9ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:46:42Z", "50", "cpu", 41469, ~N[2026-06-23 08:46:44], ~N[2026-06-23 08:46:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:46:44.576] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335072, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:46:42Z", message: nil, status_log_id: 41469, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:46:44], updated_at: ~N[2026-06-23 08:46:44]}} [2026-06-23 08:46:44.576] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:46:42Z", "value" => "online"} [2026-06-23 08:46:44.670] [DEBUG] QUERY OK db=89.8ms idle=44.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:46:42Z", "online", "network", 41469, ~N[2026-06-23 08:46:44], ~N[2026-06-23 08:46:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:46:44.671] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335074, itemkey: "network", value: "online", timestamp: "2026-06-23T12:46:42Z", message: nil, status_log_id: 41469, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:46:44], updated_at: ~N[2026-06-23 08:46:44]}} [2026-06-23 08:46:44.671] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:47:51.719] [INFO ] Running offline device check... [2026-06-23 08:47:51.719] [INFO ] Starting offline device check... [2026-06-23 08:47:51.721] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=550.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:47:51.733] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.3ms idle=303.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.744] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.5ms queue=0.1ms idle=12.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.748] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.9ms idle=11.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=5.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.750] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.752] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.755] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.756] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.758] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.760] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.765] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.766] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=5.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.780] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.785] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=14.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.787] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.789] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.790] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.801] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.9ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.804] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=11.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.806] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.808] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.810] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.811] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.825] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.3ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.848] [DEBUG] QUERY OK source="tms_terminals" db=21.8ms queue=0.1ms idle=14.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["offline", ~N[2026-06-23 08:47:51], 33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:784 [2026-06-23 08:47:51.854] [DEBUG] Device 98251226730001 remains offline. Last seen: 2026-06-23 06:46:30 [2026-06-23 08:47:51.856] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=29.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.857] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.866] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.0ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.868] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.874] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.6ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.876] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=6.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.878] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.883] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.2ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.885] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=5.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.886] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.887] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.891] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms queue=0.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.892] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.893] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.894] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.895] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:47:51.895] [INFO ] Offline device check completed. Found 37 offline devices, updated 1 statuses. [2026-06-23 08:47:51.896] [INFO ] Offline device check completed successfully [2026-06-23 08:51:44.403] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:51:44.403] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:51:42Z","org.device":[{"itemkey":"battery","value":27,"timestamp":"2026-06-23T12:51:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:51:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:51:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:51:42Z","message":""}]} [2026-06-23 08:51:44.403] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:51:42Z", "value" => 27}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:51:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:51:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:51:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:51:42Z"} [2026-06-23 08:51:44.403] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:51:44.405] [DEBUG] QUERY OK source="tms_terminals" db=1.7ms idle=1218.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:51:44.405] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:51:44.440] [DEBUG] QUERY OK source="tms_terminals" db=34.3ms idle=906.1ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:51:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:51:44.441] [DEBUG] QUERY OK source="tms_terminals" db=0.6ms queue=0.1ms idle=35.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:51:44.455] [DEBUG] QUERY OK source="tms_terminals" db=13.2ms idle=1.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:51:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:51:44.488] [DEBUG] QUERY OK db=32.9ms idle=14.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:51:42Z", ~N[2026-06-23 08:51:44], ~N[2026-06-23 08:51:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:51:44.488] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41472, oid: "org-id-placeholder", upload_time: "2026-06-23T12:51:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:51:44], updated_at: ~N[2026-06-23 08:51:44]} [2026-06-23 08:51:44.489] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:51:42Z", "value" => 27} [2026-06-23 08:51:44.517] [DEBUG] QUERY OK db=28.0ms idle=34.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:51:42Z", "27", "battery", 41472, ~N[2026-06-23 08:51:44], ~N[2026-06-23 08:51:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:51:44.517] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335075, itemkey: "battery", value: "27", timestamp: "2026-06-23T12:51:42Z", message: nil, status_log_id: 41472, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:51:44], updated_at: ~N[2026-06-23 08:51:44]}} [2026-06-23 08:51:44.518] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:51:42Z", "value" => 50} [2026-06-23 08:51:44.540] [DEBUG] QUERY OK db=21.4ms idle=16.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:51:42Z", "50", "memory", 41472, ~N[2026-06-23 08:51:44], ~N[2026-06-23 08:51:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:51:44.540] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335077, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:51:42Z", message: "Normal", status_log_id: 41472, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:51:44], updated_at: ~N[2026-06-23 08:51:44]}} [2026-06-23 08:51:44.540] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:51:42Z", "value" => 50} [2026-06-23 08:51:44.552] [DEBUG] QUERY OK db=11.7ms idle=23.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:51:42Z", "50", "cpu", 41472, ~N[2026-06-23 08:51:44], ~N[2026-06-23 08:51:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:51:44.553] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335079, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:51:42Z", message: nil, status_log_id: 41472, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:51:44], updated_at: ~N[2026-06-23 08:51:44]}} [2026-06-23 08:51:44.553] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:51:42Z", "value" => "online"} [2026-06-23 08:51:44.586] [DEBUG] QUERY OK db=32.5ms queue=0.1ms idle=13.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:51:42Z", "online", "network", 41472, ~N[2026-06-23 08:51:44], ~N[2026-06-23 08:51:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:51:44.586] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335081, itemkey: "network", value: "online", timestamp: "2026-06-23T12:51:42Z", message: nil, status_log_id: 41472, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:51:44], updated_at: ~N[2026-06-23 08:51:44]}} [2026-06-23 08:51:44.586] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:52:51.897] [INFO ] Running offline device check... [2026-06-23 08:52:51.897] [INFO ] Starting offline device check... [2026-06-23 08:52:51.906] [DEBUG] QUERY OK source="tms_terminals" db=2.2ms queue=6.4ms idle=1107.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:52:51.933] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=22.4ms idle=114.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.953] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=19.7ms idle=27.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.958] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=20.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.961] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.962] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.964] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.965] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.969] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.971] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.986] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.7ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:51.990] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=15.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.005] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.7ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.0ms idle=15.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.020] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=13.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.023] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.024] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.047] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=22.4ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.050] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=23.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.052] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.054] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.059] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.1ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.063] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms queue=0.1ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.093] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=29.3ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.094] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=30.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.095] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.108] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=12.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.110] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=13.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.113] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.3ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.116] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.118] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.126] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.9ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.127] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=8.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.131] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.132] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.133] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.134] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.136] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms queue=0.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.137] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.139] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.140] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:52:52.140] [INFO ] Offline device check completed. Found 37 offline devices, updated 0 statuses. [2026-06-23 08:52:52.140] [INFO ] Offline device check completed successfully [2026-06-23 08:56:44.450] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 08:56:44.450] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T12:56:42Z","org.device":[{"itemkey":"battery","value":27,"timestamp":"2026-06-23T12:56:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T12:56:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T12:56:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T12:56:42Z","message":""}]} [2026-06-23 08:56:44.450] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:56:42Z", "value" => 27}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:56:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:56:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:56:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T12:56:42Z"} [2026-06-23 08:56:44.450] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 08:56:44.456] [DEBUG] QUERY OK source="tms_terminals" db=5.6ms queue=0.1ms idle=1236.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:56:44.456] [INFO ] Terminal updated: 61250424798001 [2026-06-23 08:56:44.494] [DEBUG] QUERY OK source="tms_terminals" db=37.0ms idle=626.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:56:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:56:44.503] [DEBUG] QUERY OK source="tms_terminals" db=4.7ms idle=42.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:56:44.535] [DEBUG] QUERY OK source="tms_terminals" db=29.5ms idle=11.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:56:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:56:44.554] [DEBUG] QUERY OK db=13.7ms idle=37.0ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T12:56:42Z", ~N[2026-06-23 08:56:44], ~N[2026-06-23 08:56:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:56:44.554] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41473, oid: "org-id-placeholder", upload_time: "2026-06-23T12:56:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:44], updated_at: ~N[2026-06-23 08:56:44]} [2026-06-23 08:56:44.555] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T12:56:42Z", "value" => 27} [2026-06-23 08:56:44.588] [DEBUG] QUERY OK db=32.0ms idle=20.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:56:42Z", "27", "battery", 41473, ~N[2026-06-23 08:56:44], ~N[2026-06-23 08:56:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:44.588] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335083, itemkey: "battery", value: "27", timestamp: "2026-06-23T12:56:42Z", message: nil, status_log_id: 41473, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:44], updated_at: ~N[2026-06-23 08:56:44]}} [2026-06-23 08:56:44.588] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T12:56:42Z", "value" => 50} [2026-06-23 08:56:44.627] [DEBUG] QUERY OK db=38.3ms idle=34.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T12:56:42Z", "50", "memory", 41473, ~N[2026-06-23 08:56:44], ~N[2026-06-23 08:56:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:44.628] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335085, itemkey: "memory", value: "50", timestamp: "2026-06-23T12:56:42Z", message: "Normal", status_log_id: 41473, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:44], updated_at: ~N[2026-06-23 08:56:44]}} [2026-06-23 08:56:44.628] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T12:56:42Z", "value" => 50} [2026-06-23 08:56:44.652] [DEBUG] QUERY OK db=22.4ms queue=1.4ms idle=40.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:56:42Z", "50", "cpu", 41473, ~N[2026-06-23 08:56:44], ~N[2026-06-23 08:56:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:44.652] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335087, itemkey: "cpu", value: "50", timestamp: "2026-06-23T12:56:42Z", message: nil, status_log_id: 41473, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:44], updated_at: ~N[2026-06-23 08:56:44]}} [2026-06-23 08:56:44.654] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T12:56:42Z", "value" => "online"} [2026-06-23 08:56:44.683] [DEBUG] QUERY OK db=28.8ms idle=27.4ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T12:56:42Z", "online", "network", 41473, ~N[2026-06-23 08:56:44], ~N[2026-06-23 08:56:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:44.684] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335089, itemkey: "network", value: "online", timestamp: "2026-06-23T12:56:42Z", message: nil, status_log_id: 41473, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:44], updated_at: ~N[2026-06-23 08:56:44]}} [2026-06-23 08:56:44.684] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 08:56:52.344] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 08:56:52.344] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T00:06:56Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T00:06:56Z","value":"68"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T00:06:56Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T00:06:56Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T00:06:56Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T00:06:56Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T00:06:56Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T00:06:56Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-23T00:06:56Z","vendor":"MoreFun"} [2026-06-23 08:56:52.344] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T00:06:56Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T00:06:56Z", "value" => "68"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T00:06:56Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T00:06:56Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T00:06:56Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T00:06:56Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T00:06:56Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T00:06:56Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-23T00:06:56Z", "vendor" => "MoreFun"} [2026-06-23 08:56:52.344] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 08:56:52.344] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 08:56:52.344] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 08:56:52.346] [DEBUG] QUERY OK source="parameter_templates" db=1.0ms queue=0.2ms idle=1130.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 08:56:52.349] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=483.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 08:56:52.354] [DEBUG] QUERY OK source="parameter_template_values" db=4.7ms idle=3.1ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 08:56:52.363] [DEBUG] QUERY OK source="parameter_definitions" db=2.6ms queue=6.1ms idle=5.4ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 08:56:52.369] [DEBUG] QUERY OK source="pos_terminal" db=1.1ms idle=14.0ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 08:56:52.403] [DEBUG] QUERY OK source="pos_merchant" db=34.2ms idle=6.1ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 08:56:52.416] [DEBUG] QUERY OK db=9.1ms queue=3.4ms idle=1128.8ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 08:56:52.416] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 08:56:52.425] [DEBUG] QUERY OK source="pos_terminal_data" db=8.4ms idle=47.8ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 08:56:52.425] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 08:56:52.434] [DEBUG] QUERY OK source="address" db=8.4ms idle=22.1ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 08:56:52.438] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 08:56:52.447] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 08:56:52.477] [DEBUG] QUERY OK db=29.0ms idle=22.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "57e3b810aff2213a1e80cbe256e755e63456384b7c688410ef0f1af85539e0ec", 14178, 927, ~U[2026-06-23 08:56:52Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 08:56:52.477] [INFO ] AutoPushService: Created push log 30665 for MF919 params.zip [2026-06-23 08:56:52.479] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 14178, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 08:56:52.480] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 08:56:52.480] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 08:56:52.483] [DEBUG] QUERY OK source="config_file_versions" db=0.5ms idle=48.6ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 08:56:52.492] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 08:56:52.514] [DEBUG] QUERY OK db=21.2ms idle=16.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "918d6f797fa62f71c1d1daae004b2dd660557d0a5d6e2784f3407f5349d8c921", 6403, 17947, ~U[2026-06-23 08:56:52Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 08:56:52.516] [INFO ] AutoPushService: Created push log 30667 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 08:56:52.517] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 6403, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 08:56:52.517] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 08:56:52.517] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 08:56:52.522] [DEBUG] QUERY OK source="config_file_versions" db=2.6ms idle=35.8ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 08:56:52.522] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 08:56:52.524] [DEBUG] QUERY OK source="tms_terminals" db=1.5ms idle=8.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 08:56:52.524] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 08:56:52.527] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 08:56:52.528] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 08:56:52.528] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 08:56:52.530] [DEBUG] QUERY OK source="config_file_versions" db=2.5ms idle=6.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 08:56:52.533] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 08:56:52.534] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 08:56:52.539] [DEBUG] QUERY OK source="tms_terminals" db=3.7ms idle=11.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 08:56:52.539] [INFO ] Terminal updated: 98250623730001 [2026-06-23 08:56:52.569] [DEBUG] QUERY OK source="tms_terminals" db=29.0ms idle=9.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 08:56:52], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 08:56:52.573] [DEBUG] QUERY OK source="parameter_templates" db=0.7ms idle=32.9ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 08:56:52.573] [DEBUG] QUERY OK source="config_file_versions" db=0.3ms idle=4.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 08:56:52.574] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 08:56:52.575] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1.0ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 08:56:52.602] [DEBUG] QUERY OK source="tms_terminals" db=26.9ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 08:56:52], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 08:56:52.630] [DEBUG] QUERY OK db=26.5ms idle=27.6ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-23T00:06:56Z", ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 08:56:52.630] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41476, oid: "organization_id", upload_time: "2026-06-23T00:06:56Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]} [2026-06-23 08:56:52.630] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T00:06:56Z", "value" => "online"} [2026-06-23 08:56:52.647] [DEBUG] QUERY OK db=17.1ms idle=27.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T00:06:56Z", "online", "status", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.648] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335092, itemkey: "status", value: "online", timestamp: "2026-06-23T00:06:56Z", message: "Terminal status update", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.648] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 08:56:52.648] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T00:06:56Z", "value" => "68"} [2026-06-23 08:56:52.695] [DEBUG] QUERY OK db=46.8ms idle=18.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T00:06:56Z", "68", "battery", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.695] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335094, itemkey: "battery", value: "68", timestamp: "2026-06-23T00:06:56Z", message: "Battery level", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.696] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T00:06:56Z", "value" => "online"} [2026-06-23 08:56:52.729] [DEBUG] QUERY OK db=33.0ms idle=48.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T00:06:56Z", "online", "network", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.729] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335096, itemkey: "network", value: "online", timestamp: "2026-06-23T00:06:56Z", message: "Network connectivity", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.729] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 08:56:52.730] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T00:06:56Z", "value" => "0"} [2026-06-23 08:56:52.741] [DEBUG] QUERY OK db=11.4ms idle=34.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T00:06:56Z", "0", "cpu", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.742] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335098, itemkey: "cpu", value: "0", timestamp: "2026-06-23T00:06:56Z", message: "CPU usage percentage", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.742] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T00:06:56Z", "value" => "1.0.0"} [2026-06-23 08:56:52.770] [DEBUG] QUERY OK db=26.3ms idle=14.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T00:06:56Z", "1.0.0", "parameter_config", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.770] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335100, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T00:06:56Z", message: "Current parameters version", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.772] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T00:06:56Z", "value" => "1.0.1"} [2026-06-23 08:56:52.812] [DEBUG] QUERY OK db=39.4ms idle=31.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T00:06:56Z", "1.0.1", "emv_config", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.812] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335102, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T00:06:56Z", message: "Current EMV config version", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.812] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T00:06:56Z", "value" => ""} [2026-06-23 08:56:52.905] [DEBUG] QUERY OK db=50.8ms queue=41.7ms idle=43.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T00:06:56Z", "keys_config", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.906] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335104, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T00:06:56Z", message: "Current keys config version", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.906] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T00:06:56Z", "value" => ""} [2026-06-23 08:56:52.994] [DEBUG] QUERY OK db=46.1ms queue=40.8ms idle=38.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T00:06:56Z", "application", 41476, ~N[2026-06-23 08:56:52], ~N[2026-06-23 08:56:52]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 08:56:52.994] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335106, itemkey: "application", value: nil, timestamp: "2026-06-23T00:06:56Z", message: "Current application version", status_log_id: 41476, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 08:56:52], updated_at: ~N[2026-06-23 08:56:52]}} [2026-06-23 08:56:52.994] [WARN ] Unexpected async result [2026-06-23 08:56:52.994] [WARN ] Unexpected async result [2026-06-23 08:57:47.691] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 08:57:47.694] [DEBUG] QUERY OK source="tms_terminals" db=2.3ms queue=0.1ms idle=528.0ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 08:57:47.695] [DEBUG] QUERY OK source="filter_usage" db=0.8ms idle=460.7ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 08:57:47.695] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 08:57:52.141] [INFO ] Running offline device check... [2026-06-23 08:57:52.141] [INFO ] Starting offline device check... [2026-06-23 08:57:52.143] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=957.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 08:57:52.161] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.5ms idle=909.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.171] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.0ms idle=21.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.173] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=10.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.174] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.176] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.177] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.178] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.185] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.188] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=7.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.192] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.6ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.200] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.0ms idle=0.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.205] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.6ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.220] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.2ms idle=5.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.250] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=23.8ms queue=3.1ms idle=17.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.256] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms queue=2.5ms idle=30.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.258] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.264] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.283] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.5ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.289] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=19.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.292] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=8.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.295] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.299] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.7ms queue=0.1ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.300] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.331] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=31.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.337] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.4ms idle=31.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.339] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=6.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.353] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.7ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.356] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=14.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.360] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms queue=0.1ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.363] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.364] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.372] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.373] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=9.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.374] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.375] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.378] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.380] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.380] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.382] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.384] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.385] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 08:57:52.385] [INFO ] Offline device check completed. Found 37 offline devices, updated 0 statuses. [2026-06-23 08:57:52.387] [INFO ] Offline device check completed successfully [2026-06-23 09:01:44.430] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 09:01:44.430] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T13:01:42Z","org.device":[{"itemkey":"battery","value":28,"timestamp":"2026-06-23T13:01:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T13:01:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T13:01:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T13:01:42Z","message":""}]} [2026-06-23 09:01:44.430] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:01:42Z", "value" => 28}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:01:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:01:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:01:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T13:01:42Z"} [2026-06-23 09:01:44.430] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 09:01:44.432] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=1170.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:01:44.432] [INFO ] Terminal updated: 61250424798001 [2026-06-23 09:01:44.490] [DEBUG] QUERY OK source="tms_terminals" db=57.0ms idle=234.4ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:01:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:01:44.492] [DEBUG] QUERY OK source="tms_terminals" db=1.2ms idle=58.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:01:44.515] [DEBUG] QUERY OK source="tms_terminals" db=23.3ms idle=2.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:01:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:01:44.563] [DEBUG] QUERY OK db=46.9ms idle=24.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T13:01:42Z", ~N[2026-06-23 09:01:44], ~N[2026-06-23 09:01:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:01:44.563] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41478, oid: "org-id-placeholder", upload_time: "2026-06-23T13:01:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:01:44], updated_at: ~N[2026-06-23 09:01:44]} [2026-06-23 09:01:44.563] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:01:42Z", "value" => 28} [2026-06-23 09:01:44.640] [DEBUG] QUERY OK db=33.5ms queue=42.4ms idle=48.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:01:42Z", "28", "battery", 41478, ~N[2026-06-23 09:01:44], ~N[2026-06-23 09:01:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:01:44.640] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335108, itemkey: "battery", value: "28", timestamp: "2026-06-23T13:01:42Z", message: nil, status_log_id: 41478, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:01:44], updated_at: ~N[2026-06-23 09:01:44]}} [2026-06-23 09:01:44.640] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:01:42Z", "value" => 50} [2026-06-23 09:01:44.671] [DEBUG] QUERY OK db=30.8ms idle=77.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T13:01:42Z", "50", "memory", 41478, ~N[2026-06-23 09:01:44], ~N[2026-06-23 09:01:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:01:44.672] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335110, itemkey: "memory", value: "50", timestamp: "2026-06-23T13:01:42Z", message: "Normal", status_log_id: 41478, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:01:44], updated_at: ~N[2026-06-23 09:01:44]}} [2026-06-23 09:01:44.672] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:01:42Z", "value" => 50} [2026-06-23 09:01:44.714] [DEBUG] QUERY OK db=42.0ms idle=32.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:01:42Z", "50", "cpu", 41478, ~N[2026-06-23 09:01:44], ~N[2026-06-23 09:01:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:01:44.715] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335112, itemkey: "cpu", value: "50", timestamp: "2026-06-23T13:01:42Z", message: nil, status_log_id: 41478, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:01:44], updated_at: ~N[2026-06-23 09:01:44]}} [2026-06-23 09:01:44.715] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:01:42Z", "value" => "online"} [2026-06-23 09:01:44.775] [DEBUG] QUERY OK db=18.8ms queue=41.3ms idle=43.6ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:01:42Z", "online", "network", 41478, ~N[2026-06-23 09:01:44], ~N[2026-06-23 09:01:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:01:44.776] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335114, itemkey: "network", value: "online", timestamp: "2026-06-23T13:01:42Z", message: nil, status_log_id: 41478, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:01:44], updated_at: ~N[2026-06-23 09:01:44]}} [2026-06-23 09:01:44.776] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 09:02:52.388] [INFO ] Running offline device check... [2026-06-23 09:02:52.388] [INFO ] Starting offline device check... [2026-06-23 09:02:52.390] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.8ms idle=1122.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 09:02:52.409] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=18.3ms idle=888.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.420] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.4ms idle=19.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.425] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=11.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.426] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.428] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.430] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.432] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.433] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.436] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.446] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.6ms idle=3.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.448] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=10.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.466] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.7ms queue=0.5ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.473] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.6ms idle=18.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.476] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=7.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.477] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.478] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.495] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.4ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.497] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=17.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.500] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.501] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.503] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.1ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.504] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.528] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=23.1ms idle=0.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.529] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=8.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.529] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.539] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.540] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=9.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.544] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.0ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.548] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.2ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.550] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=4.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.560] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=10.3ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.563] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms queue=0.2ms idle=11.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.566] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.567] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.571] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.4ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.572] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=4.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms queue=0.2ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.573] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.574] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:02:52.574] [INFO ] Offline device check completed. Found 37 offline devices, updated 0 statuses. [2026-06-23 09:02:52.574] [INFO ] Offline device check completed successfully [2026-06-23 09:04:26.732] [WARN ] Connection that looks like TLS received on a clear channel [2026-06-23 09:04:28.127] [WARN ] Connection that looks like TLS received on a clear channel [2026-06-23 09:04:37.182] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 09:04:37.183] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T00:14:40Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T00:14:40Z","value":"68"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T00:14:40Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T00:14:40Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T00:14:40Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T00:14:40Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T00:14:40Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T00:14:40Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-23T00:14:40Z","vendor":"MoreFun"} [2026-06-23 09:04:37.184] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T00:14:40Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T00:14:40Z", "value" => "68"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T00:14:40Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T00:14:40Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T00:14:40Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T00:14:40Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T00:14:40Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T00:14:40Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-23T00:14:40Z", "vendor" => "MoreFun"} [2026-06-23 09:04:37.185] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 09:04:37.185] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 09:04:37.185] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 09:04:37.186] [DEBUG] QUERY OK source="parameter_templates" db=0.4ms idle=1155.0ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 09:04:37.187] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms idle=152.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 09:04:37.189] [DEBUG] QUERY OK source="parameter_template_values" db=1.3ms idle=1.4ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 09:04:37.194] [DEBUG] QUERY OK source="parameter_definitions" db=1.7ms queue=2.3ms idle=2.3ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 09:04:37.195] [DEBUG] QUERY OK source="pos_terminal" db=0.3ms idle=5.9ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 09:04:37.234] [DEBUG] QUERY OK source="pos_merchant" db=39.1ms idle=1.7ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 09:04:37.238] [DEBUG] QUERY OK db=2.3ms queue=1.0ms idle=1911.9ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 09:04:37.239] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 09:04:37.240] [DEBUG] QUERY OK source="pos_terminal_data" db=0.3ms queue=0.4ms idle=44.2ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 09:04:37.240] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 09:04:37.241] [DEBUG] QUERY OK source="address" db=0.5ms idle=5.9ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 09:04:37.241] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 09:04:37.247] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 09:04:37.302] [DEBUG] QUERY OK db=53.2ms idle=7.9ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a14770d92aeac4feecd1e8b378f263554fc646eecfa422f887f11b914836e6aa", 6755, 927, ~U[2026-06-23 09:04:37Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 09:04:37.302] [INFO ] AutoPushService: Created push log 30668 for MF919 params.zip [2026-06-23 09:04:37.302] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 6755, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 09:04:37.302] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 09:04:37.302] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 09:04:37.307] [DEBUG] QUERY OK source="config_file_versions" db=4.3ms idle=61.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 09:04:37.313] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 09:04:37.346] [DEBUG] QUERY OK db=28.7ms idle=15.3ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "a06a62624e429162a523ce68ae0c6a035a3b879e1f2db72fceb12a7d29e2ad45", 6819, 17947, ~U[2026-06-23 09:04:37Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 09:04:37.346] [INFO ] AutoPushService: Created push log 30670 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 09:04:37.346] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 6819, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 09:04:37.349] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 09:04:37.349] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 09:04:37.351] [DEBUG] QUERY OK source="config_file_versions" db=1.7ms idle=42.3ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 09:04:37.351] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 09:04:37.352] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=5.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 09:04:37.353] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 09:04:37.357] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 09:04:37.358] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 09:04:37.358] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 09:04:37.361] [DEBUG] QUERY OK source="config_file_versions" db=2.8ms idle=7.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 09:04:37.362] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 09:04:37.363] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 09:04:37.364] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms idle=10.3ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:04:37.364] [INFO ] Terminal updated: 98250623730001 [2026-06-23 09:04:37.398] [DEBUG] QUERY OK source="tms_terminals" db=31.2ms idle=5.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:04:37], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:04:37.406] [DEBUG] QUERY OK source="parameter_templates" db=7.1ms queue=0.1ms idle=34.8ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 09:04:37.409] [DEBUG] QUERY OK source="config_file_versions" db=0.4ms queue=0.6ms idle=9.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 09:04:37.409] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 09:04:37.415] [DEBUG] QUERY OK source="tms_terminals" db=5.7ms idle=3.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:04:37.447] [DEBUG] QUERY OK source="tms_terminals" db=32.0ms idle=6.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:04:37], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:04:37.476] [DEBUG] QUERY OK db=27.5ms queue=0.1ms idle=34.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-23T00:14:40Z", ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:04:37.477] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41480, oid: "organization_id", upload_time: "2026-06-23T00:14:40Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]} [2026-06-23 09:04:37.477] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T00:14:40Z", "value" => "online"} [2026-06-23 09:04:37.510] [DEBUG] QUERY OK db=32.6ms idle=29.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T00:14:40Z", "online", "status", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.510] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335116, itemkey: "status", value: "online", timestamp: "2026-06-23T00:14:40Z", message: "Terminal status update", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.510] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 09:04:37.510] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T00:14:40Z", "value" => "68"} [2026-06-23 09:04:37.565] [DEBUG] QUERY OK db=50.9ms idle=37.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T00:14:40Z", "68", "battery", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.565] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335118, itemkey: "battery", value: "68", timestamp: "2026-06-23T00:14:40Z", message: "Battery level", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.567] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T00:14:40Z", "value" => "online"} [2026-06-23 09:04:37.592] [DEBUG] QUERY OK db=24.5ms queue=0.1ms idle=57.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T00:14:40Z", "online", "network", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.592] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335120, itemkey: "network", value: "online", timestamp: "2026-06-23T00:14:40Z", message: "Network connectivity", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.592] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 09:04:37.593] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T00:14:40Z", "value" => "0"} [2026-06-23 09:04:37.632] [DEBUG] QUERY OK db=39.4ms idle=28.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T00:14:40Z", "0", "cpu", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.633] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335122, itemkey: "cpu", value: "0", timestamp: "2026-06-23T00:14:40Z", message: "CPU usage percentage", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.633] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T00:14:40Z", "value" => "1.0.0"} [2026-06-23 09:04:37.677] [DEBUG] QUERY OK db=43.8ms idle=41.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T00:14:40Z", "1.0.0", "parameter_config", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.677] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335124, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T00:14:40Z", message: "Current parameters version", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.677] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T00:14:40Z", "value" => "1.0.1"} [2026-06-23 09:04:37.702] [DEBUG] QUERY OK db=24.0ms idle=45.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T00:14:40Z", "1.0.1", "emv_config", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.702] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335126, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T00:14:40Z", message: "Current EMV config version", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.702] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T00:14:40Z", "value" => ""} [2026-06-23 09:04:37.739] [DEBUG] QUERY OK db=34.6ms queue=1.7ms idle=25.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T00:14:40Z", "keys_config", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.739] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335127, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T00:14:40Z", message: "Current keys config version", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.739] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T00:14:40Z", "value" => ""} [2026-06-23 09:04:37.805] [DEBUG] QUERY OK db=22.9ms queue=42.1ms idle=37.9ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T00:14:40Z", "application", 41480, ~N[2026-06-23 09:04:37], ~N[2026-06-23 09:04:37]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:04:37.805] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335129, itemkey: "application", value: nil, timestamp: "2026-06-23T00:14:40Z", message: "Current application version", status_log_id: 41480, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:04:37], updated_at: ~N[2026-06-23 09:04:37]}} [2026-06-23 09:04:37.805] [WARN ] Unexpected async result [2026-06-23 09:04:37.805] [WARN ] Unexpected async result [2026-06-23 09:04:43.853] [INFO ] GET / [2026-06-23 09:04:48.856] [DEBUG] Processing with PlatformWeb.PageController.home/2 Parameters: %{} Pipelines: [:browser] [2026-06-23 09:04:53.862] [INFO ] Sent 200 in 10008ms [2026-06-23 09:04:54.677] [INFO ] GET /images/favicon.png [2026-06-23 09:04:54.704] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /images/favicon.png (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Shamanth/prverification/TMS_UAT_APP/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Shamanth/prverification/TMS_UAT_APP/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_continue/2 (stdlib 5.2.3.2) gen_server.erl:1085: :gen_server.try_handle_continue/3 (stdlib 5.2.3.2) gen_server.erl:995: :gen_server.loop/7 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-06-23 09:04:55.362] [INFO ] GET /images/favicon.png [2026-06-23 09:04:55.381] [DEBUG] ** (Phoenix.Router.NoRouteError) no route found for GET /images/favicon.png (PlatformWeb.Router) (platform_web 0.1.0) /var/www/internaltesting/Shamanth/prverification/TMS_UAT_APP/deps/phoenix/lib/phoenix/router.ex:541: PlatformWeb.Router.call/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.plug_builder_call/2 (platform_web 0.1.0) /var/www/internaltesting/Shamanth/prverification/TMS_UAT_APP/deps/plug/lib/plug/debugger.ex:155: PlatformWeb.Endpoint."call (overridable 3)"/2 (platform_web 0.1.0) lib/platform_web/endpoint.ex:1: PlatformWeb.Endpoint.call/2 (phoenix 1.7.21) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4 (bandit 1.10.2) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2 (bandit 1.10.2) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5 (bandit 1.10.2) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3 (bandit 1.10.2) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_continue/2 (stdlib 5.2.3.2) gen_server.erl:1085: :gen_server.try_handle_continue/3 (stdlib 5.2.3.2) gen_server.erl:995: :gen_server.loop/7 (stdlib 5.2.3.2) proc_lib.erl:241: :proc_lib.init_p_do_apply/3 [2026-06-23 09:06:05.851] [INFO ] Received status update for terminal 98250623730001 [2026-06-23 09:06:05.851] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T00:16:09Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T00:16:09Z","value":"67"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T00:16:09Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T00:16:09Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T00:16:09Z","value":"1.0.0"},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T00:16:09Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T00:16:09Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T00:16:09Z","value":""}],"model":"MF919","oid":"organization_id","sn":"98250623730001","uploadTime":"2026-06-23T00:16:09Z","vendor":"MoreFun"} [2026-06-23 09:06:05.852] [INFO ] Decoded JSON: %{"model" => "MF919", "oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T00:16:09Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T00:16:09Z", "value" => "67"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T00:16:09Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T00:16:09Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T00:16:09Z", "value" => "1.0.0"}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T00:16:09Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T00:16:09Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T00:16:09Z", "value" => ""}], "sn" => "98250623730001", "uploadTime" => "2026-06-23T00:16:09Z", "vendor" => "MoreFun"} [2026-06-23 09:06:05.861] [INFO ] Extracted versions for 98250623730001: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: "1.0.0"} [2026-06-23 09:06:05.861] [INFO ] Detected missing versions for 98250623730001, triggering auto-push [2026-06-23 09:06:05.861] [INFO ] AutoPushService: Triggering auto-push for 98250623730001 (MoreFun MF919) - missing version [2026-06-23 09:06:05.870] [DEBUG] QUERY OK source="parameter_templates" db=7.4ms queue=1.6ms idle=1480.2ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.find_best_template/2, at: lib/tms_core/terminal_management/auto_push_service.ex:132 [2026-06-23 09:06:05.873] [DEBUG] QUERY OK source="tms_terminals" db=2.9ms idle=476.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.AutoPushService.trigger_missing_version_push/3, at: lib/tms_core/terminal_management/auto_push_service.ex:37 [2026-06-23 09:06:05.877] [DEBUG] QUERY OK source="parameter_template_values" db=3.0ms idle=3.6ms SELECT p0.`id`, p0.`value`, p0.`is_overridden`, p0.`template_id`, p0.`parameter_definition_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_template_values` AS p0 WHERE (p0.`template_id` = ?) [10] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 09:06:05.888] [DEBUG] QUERY OK source="parameter_definitions" db=7.2ms queue=3.1ms idle=3.9ms SELECT p0.`id`, p0.`key`, p0.`name`, p0.`description`, p0.`data_type`, p0.`default_value`, p0.`is_required`, p0.`is_system`, p0.`validation_rules`, p0.`display_order`, p0.`is_active`, p0.`category_id`, p0.`inserted_at`, p0.`updated_at`, p0.`id` FROM `parameter_definitions` AS p0 WHERE (p0.`id` IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)) [93, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40] ↳ TmsCore.TerminalManagement.AutoPushService.push_template_parameters/5, at: lib/tms_core/terminal_management/auto_push_service.ex:157 [2026-06-23 09:06:05.890] [DEBUG] QUERY OK source="pos_terminal" db=1.4ms idle=11.4ms SELECT p0.`id`, p0.`terminalid`, p0.`serial_number`, p0.`pos_merchant_id` FROM `pos_terminal` AS p0 WHERE (p0.`serial_number` = ?) LIMIT 1 ["98250623730001"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_terminal/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:165 [2026-06-23 09:06:05.931] [DEBUG] QUERY OK source="pos_merchant" db=41.3ms idle=2.2ms SELECT p0.`id`, p0.`merchantid`, p0.`merchant_name`, p0.`address_id` FROM `pos_merchant` AS p0 WHERE (p0.`id` = ?) [10] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_pos_merchant/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:176 [2026-06-23 09:06:05.936] [DEBUG] QUERY OK db=2.3ms queue=1.8ms idle=1606.4ms SELECT COALESCE(JSON_UNQUOTE(JSON_EXTRACT(mc.settings, '$.BASE_MERCHANT_NAME')), '') as base_merchant_name, COALESCE(u.name, '') as user_name, COALESCE(um.softpos_uuid, '') as softpos_uuid, COALESCE(mc.settings, '{}') as settings FROM user_metadata um LEFT JOIN merchant_configuration mc ON mc.user_id = um.user_id LEFT JOIN users u ON u.id = um.user_id WHERE um.merchant_refrence_number = ? LIMIT 1 ["123451234512345"] [2026-06-23 09:06:05.936] [INFO ] ParamsZipBuilder: Merchant info for merchantid=123451234512345 - business_name=Frog8 Cafe, QR_USE_SSL=, MQTT_HEARTBEAT_INTERVAL=60, softpos_uuid= [2026-06-23 09:06:05.937] [DEBUG] QUERY OK source="pos_terminal_data" db=0.4ms idle=46.5ms SELECT p0.`id`, p0.`pos_terminalId`, p0.`stan`, p0.`batch_number`, p0.`transaction_date`, p0.`transaction_time`, p0.`transaction_id` FROM `pos_terminal_data` AS p0 WHERE (p0.`pos_terminalId` = ?) ORDER BY p0.`id` DESC LIMIT 1 ["12345673"] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_terminal_data/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:262 [2026-06-23 09:06:05.937] [INFO ] ParamsZipBuilder: no pos_terminal_data for terminalid=12345673, using defaults [2026-06-23 09:06:05.939] [DEBUG] QUERY OK source="address" db=1.4ms idle=6.1ms SELECT a0.`id`, a0.`line1`, a0.`line2`, a0.`line3`, a0.`line4`, a0.`city`, a0.`state`, a0.`country`, a0.`postalcode` FROM `address` AS a0 WHERE (a0.`id` = ?) [238] ↳ TmsCore.TerminalManagement.ParamsZipBuilder.get_merchant_address/1, at: lib/tms_core/terminal_management/params_zip_builder.ex:80 [2026-06-23 09:06:05.939] [INFO ] ParamsZipBuilder: fetch_merchant_data for serial=98250623730001, pos_merchant.merchantid="123451234512345" [2026-06-23 09:06:05.950] [INFO ] ParamsZipBuilder: params.zip stored for 98250623730001 at priv/ota/98250623730001/params.zip [2026-06-23 09:06:05.996] [DEBUG] QUERY OK db=44.1ms idle=14.8ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`parameters_sent`,`push_type`,`template_id`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "e9891f0555421746c5b764b0937f8c7d1b5540a4547558d6b8207d3a1c080dc7", 14658, 927, ~U[2026-06-23 09:06:05Z], "priv/ota/98250623730001/params.zip", 19, "MF919", %{"PASSWORD_SECURITY" => "888888", "TOMS_FLY_RECEIPT" => "0", "SCAN_EXTERN_USB_WAIT_TIME" => "300", "EXTERNAL_PINPAD_YSDK" => "1", "COMM_NII" => "782", "TRANS_VOID" => "1", "PASSWORD_SYSTEM_ADMIN" => "000000", "PINPAD_ALGORITHM_TYPE" => "0", "BASE_MAX_TRANS_COUNT" => "500", "BASE_CURRENCY_CODE" => "784", "TRANS_INSTALLMENT" => "0", "COMM_TIMEOUT" => "60", "SCAN_EXTERN_CONNECT_MODE" => "0", "NFC_RECEIPT" => "0", "COMM_SERVER_ADDRESS" => "40.120.104.51", "PRINT_EXTERNAL_CONNECT_MODE" => "1", "PASSWORD_ADMIN" => "123456", "ELECSIGN_IS_SUPPORT" => "0", "SCAN_PRIORITY_SCANNER" => "1", "OTHER_VOID_PIN" => "0", "TRANS_REFUND" => "0", "BASE_TRACE_NO" => "000001", "MQTT_HEARTBEAT_INTERVAL" => "60", "TRANS_MOBILE_PAY" => "0", "PRINT_EXTERNAL_SERIAL_BAUDRATE" => "115200", "OTHER_VOID_CARD" => "0", "TOMS_FLY_PARAMETERS" => "0", "TRANS_BALANCE" => "0", "BASE_MAX_REFUND_AMOUNT" => "1000000", "PINPAD_TIMEOUT" => "60", "SCAN_EXTERN_SERIAL_BAUDRATE" => "115200", "PRINT_REMARKS" => "Thank you, Visit Again", "PRINT_COUNT" => "2", "COMM_TPDU" => "6000782000", "PRINT_EXTERNAL" => "0", "EXTERNAL_PINPAD_CONNECT_MODE" => "0", "TRANS_PREAUTH" => "0", "OTHER_THRID_BILL_SHOW" => "0", "COMM_USE_SSL" => "0", "PINPAD_MASTER_KEY_INDEX" => "0", "COMM_PORT" => "80", ...}, "full", 10, "MoreFun", "parameter", "missing_version", "1.0.0", ~N[2026-06-23 09:06:05], ~N[2026-06-23 09:06:05]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_params/6, at: lib/tms_core/terminal_management/auto_push_service.ex:202 [2026-06-23 09:06:05.996] [INFO ] AutoPushService: Created push log 30673 for MF919 params.zip [2026-06-23 09:06:05.997] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_PARAMS", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/params.zip", "requestId" => 14658, "type" => "tms_command", "version" => "1.0.0"} [2026-06-23 09:06:06.000] [INFO ] AutoPushService: Sending MF919 UPDATE_PARAMS to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 09:06:06.000] [INFO ] AutoPushService: MF919 UPDATE_PARAMS sent successfully to 98250623730001 [2026-06-23 09:06:06.004] [DEBUG] QUERY OK source="config_file_versions" db=3.5ms idle=61.4ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:278 [2026-06-23 09:06:06.016] [INFO ] L3ConfigZipBuilder: l3config.zip stored for 98250623730001 at priv/ota/98250623730001/l3config.zip (source: priv/static/mf919/1.0.1/YSDK_L3_configuration.xml) [2026-06-23 09:06:06.055] [DEBUG] QUERY OK db=34.7ms idle=24.0ms INSERT INTO `parameter_push_logs` (`status`,`checksum`,`request_id`,`file_size`,`log_time`,`file_path`,`terminal_id`,`device_model`,`push_type`,`device_vendor`,`config_type`,`trigger_reason`,`version_sent`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ["pending", "1ad734ef780f5ce9169eec2fa80330abaa69937f14fcd1b1a2eb9706de8f53dd", 14722, 17947, ~U[2026-06-23 09:06:06Z], "priv/ota/98250623730001/l3config.zip", 19, "MF919", "full", "MoreFun", "emv_config", "missing_version", "1.0.1", ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_emv_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:304 [2026-06-23 09:06:06.055] [INFO ] AutoPushService: Created push log 30674 for MF919 l3config.zip (version: 1.0.1) [2026-06-23 09:06:06.056] [INFO ] MF919 MQTT Command: %{"command" => "UPDATE_L3_CONFIG", "downloadUrl" => "http://demo.ctrmv.com:4026/ota/98250623730001/l3config.zip", "requestId" => 14722, "type" => "tms_command", "version" => "1.0.1"} [2026-06-23 09:06:06.056] [INFO ] AutoPushService: Sending MF919 UPDATE_L3_CONFIG to 98250623730001 on topic: /ota/pFppbioOCKlo5c8E/98250623730001/update [2026-06-23 09:06:06.056] [INFO ] AutoPushService: MF919 UPDATE_L3_CONFIG sent successfully to 98250623730001 [2026-06-23 09:06:06.060] [DEBUG] QUERY OK source="config_file_versions" db=0.8ms idle=55.5ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["keys_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_keys_config/4, at: lib/tms_core/terminal_management/auto_push_service.ex:322 [2026-06-23 09:06:06.061] [INFO ] KeysConfigService: Generating keys.json for 98250623730001 (MF919) [2026-06-23 09:06:06.063] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms idle=6.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.KeysConfigService.generate_and_store_keys_file/2, at: lib/tms_core/terminal_management/keys_config_service.ex:39 [2026-06-23 09:06:06.063] [INFO ] KeysConfigService TMS Core: Calling getRki endpoint for 98250623730001 with params: %{"kekKcv" => "112233", "model" => "MF919", "serialNumber" => "98250623730001", "slotNumber" => 1} with url: http://localhost:8300/api/v1/getRki [2026-06-23 09:06:06.069] [ERROR] KeysConfigService: Failed to fetch RKI key: "%Req.TransportError{reason: :econnrefused}" [2026-06-23 09:06:06.069] [ERROR] KeysConfigService: Failed to generate keys for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 09:06:06.069] [ERROR] AutoPushService: Failed to generate keys.json for 98250623730001: "Failed to fetch RKI key: \"%Req.TransportError{reason: :econnrefused}\"" [2026-06-23 09:06:06.071] [DEBUG] QUERY OK source="config_file_versions" db=1.9ms idle=8.7ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["application", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.AutoPushService.push_mf919_application/4, at: lib/tms_core/terminal_management/auto_push_service.ex:365 [2026-06-23 09:06:06.072] [ERROR] AutoPushService: Failed to resolve application artifact for 98250623730001: "application artifact not found: priv/static/mf919/agent_app.apk" [2026-06-23 09:06:06.072] [INFO ] AutoPushService: Auto-push completed for 98250623730001 [2026-06-23 09:06:06.074] [DEBUG] QUERY OK source="tms_terminals" db=1.4ms idle=9.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:06:06.075] [INFO ] Terminal updated: 98250623730001 [2026-06-23 09:06:06.109] [DEBUG] QUERY OK source="tms_terminals" db=34.2ms queue=0.1ms idle=3.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:06:06], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:06:06.112] [DEBUG] QUERY OK source="parameter_templates" db=2.3ms idle=35.3ms SELECT p0.`id`, p0.`name`, p0.`description`, p0.`vendor`, p0.`model`, p0.`version`, p0.`is_default`, p0.`is_active`, p0.`created_by_id`, p0.`inserted_at`, p0.`updated_at` FROM `parameter_templates` AS p0 WHERE (((p0.`is_active` = TRUE) AND (p0.`vendor` = ?)) AND (p0.`model` = ?)) ORDER BY p0.`updated_at` DESC LIMIT 1 ["MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_parameter_version/2, at: lib/tms_core/terminal_management/version_compliance_checker.ex:105 [2026-06-23 09:06:06.113] [DEBUG] QUERY OK source="config_file_versions" db=0.7ms idle=3.1ms SELECT c0.`id`, c0.`config_type`, c0.`vendor`, c0.`model`, c0.`version`, c0.`file_path`, c0.`checksum`, c0.`is_active`, c0.`release_notes`, c0.`creator_id`, c0.`inserted_at`, c0.`updated_at` FROM `config_file_versions` AS c0 WHERE ((((c0.`config_type` = ?) AND (c0.`vendor` = ?)) AND (c0.`model` = ?)) AND (c0.`is_active` = TRUE)) LIMIT 1 ["emv_config", "MoreFun", "MF919"] ↳ TmsCore.TerminalManagement.VersionComplianceChecker.get_target_file_version/3, at: lib/tms_core/terminal_management/version_compliance_checker.ex:120 [2026-06-23 09:06:06.113] [DEBUG] VersionComplianceChecker: 98250623730001 — all versions compliant [2026-06-23 09:06:06.117] [DEBUG] QUERY OK source="tms_terminals" db=2.0ms idle=2.9ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["98250623730001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:06:06.148] [DEBUG] QUERY OK source="tms_terminals" db=29.6ms idle=4.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:06:06], 19] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:06:06.166] [DEBUG] QUERY OK db=16.7ms idle=32.3ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [19, "organization_id", "2026-06-23T00:16:09Z", ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:06:06.167] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41482, oid: "organization_id", upload_time: "2026-06-23T00:16:09Z", terminal_id: 19, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]} [2026-06-23 09:06:06.167] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T00:16:09Z", "value" => "online"} [2026-06-23 09:06:06.213] [DEBUG] QUERY OK db=46.3ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T00:16:09Z", "online", "status", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.214] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335132, itemkey: "status", value: "online", timestamp: "2026-06-23T00:16:09Z", message: "Terminal status update", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.214] [INFO ] Setting terminal 98250623730001 status to 'online' from status itemkey [2026-06-23 09:06:06.215] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T00:16:09Z", "value" => "67"} [2026-06-23 09:06:06.248] [DEBUG] QUERY OK db=32.7ms idle=49.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T00:16:09Z", "67", "battery", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.248] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335134, itemkey: "battery", value: "67", timestamp: "2026-06-23T00:16:09Z", message: "Battery level", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.249] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T00:16:09Z", "value" => "online"} [2026-06-23 09:06:06.267] [DEBUG] QUERY OK db=18.0ms idle=35.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T00:16:09Z", "online", "network", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.267] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335136, itemkey: "network", value: "online", timestamp: "2026-06-23T00:16:09Z", message: "Network connectivity", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.267] [INFO ] Setting terminal 98250623730001 status to 'online' from network itemkey [2026-06-23 09:06:06.268] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T00:16:09Z", "value" => "0"} [2026-06-23 09:06:06.324] [DEBUG] QUERY OK db=56.1ms idle=19.7ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T00:16:09Z", "0", "cpu", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.324] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335138, itemkey: "cpu", value: "0", timestamp: "2026-06-23T00:16:09Z", message: "CPU usage percentage", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.324] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T00:16:09Z", "value" => "1.0.0"} [2026-06-23 09:06:06.360] [DEBUG] QUERY OK db=35.4ms idle=57.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current parameters version", "2026-06-23T00:16:09Z", "1.0.0", "parameter_config", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.361] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335140, itemkey: "parameter_config", value: "1.0.0", timestamp: "2026-06-23T00:16:09Z", message: "Current parameters version", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.361] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T00:16:09Z", "value" => "1.0.1"} [2026-06-23 09:06:06.376] [DEBUG] QUERY OK db=14.4ms idle=36.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T00:16:09Z", "1.0.1", "emv_config", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.376] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335142, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T00:16:09Z", message: "Current EMV config version", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.377] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T00:16:09Z", "value" => ""} [2026-06-23 09:06:06.408] [DEBUG] QUERY OK db=30.8ms idle=17.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T00:16:09Z", "keys_config", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.410] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335144, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T00:16:09Z", message: "Current keys config version", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.411] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T00:16:09Z", "value" => ""} [2026-06-23 09:06:06.456] [DEBUG] QUERY OK db=43.7ms idle=14.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T00:16:09Z", "application", 41482, ~N[2026-06-23 09:06:06], ~N[2026-06-23 09:06:06]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:06.456] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335146, itemkey: "application", value: nil, timestamp: "2026-06-23T00:16:09Z", message: "Current application version", status_log_id: 41482, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:06], updated_at: ~N[2026-06-23 09:06:06]}} [2026-06-23 09:06:06.456] [WARN ] Unexpected async result [2026-06-23 09:06:06.456] [WARN ] Unexpected async result [2026-06-23 09:06:44.449] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 09:06:44.449] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T13:06:42Z","org.device":[{"itemkey":"battery","value":28,"timestamp":"2026-06-23T13:06:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T13:06:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T13:06:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T13:06:42Z","message":""}]} [2026-06-23 09:06:44.449] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:06:42Z", "value" => 28}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:06:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:06:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:06:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T13:06:42Z"} [2026-06-23 09:06:44.449] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 09:06:44.453] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=899.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:06:44.453] [INFO ] Terminal updated: 61250424798001 [2026-06-23 09:06:44.477] [DEBUG] QUERY OK source="tms_terminals" db=22.7ms idle=159.2ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:06:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:06:44.478] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms idle=24.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:06:44.510] [DEBUG] QUERY OK source="tms_terminals" db=31.6ms idle=1.9ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:06:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:06:44.534] [DEBUG] QUERY OK db=23.1ms idle=32.9ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T13:06:42Z", ~N[2026-06-23 09:06:44], ~N[2026-06-23 09:06:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:06:44.534] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41483, oid: "org-id-placeholder", upload_time: "2026-06-23T13:06:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:44], updated_at: ~N[2026-06-23 09:06:44]} [2026-06-23 09:06:44.535] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:06:42Z", "value" => 28} [2026-06-23 09:06:44.590] [DEBUG] QUERY OK db=14.0ms queue=40.7ms idle=25.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:06:42Z", "28", "battery", 41483, ~N[2026-06-23 09:06:44], ~N[2026-06-23 09:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:44.591] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335147, itemkey: "battery", value: "28", timestamp: "2026-06-23T13:06:42Z", message: nil, status_log_id: 41483, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:44], updated_at: ~N[2026-06-23 09:06:44]}} [2026-06-23 09:06:44.591] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:06:42Z", "value" => 50} [2026-06-23 09:06:44.615] [DEBUG] QUERY OK db=23.6ms idle=38.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T13:06:42Z", "50", "memory", 41483, ~N[2026-06-23 09:06:44], ~N[2026-06-23 09:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:44.615] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335149, itemkey: "memory", value: "50", timestamp: "2026-06-23T13:06:42Z", message: "Normal", status_log_id: 41483, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:44], updated_at: ~N[2026-06-23 09:06:44]}} [2026-06-23 09:06:44.615] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:06:42Z", "value" => 50} [2026-06-23 09:06:44.652] [DEBUG] QUERY OK db=35.6ms queue=0.5ms idle=25.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:06:42Z", "50", "cpu", 41483, ~N[2026-06-23 09:06:44], ~N[2026-06-23 09:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:44.652] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335151, itemkey: "cpu", value: "50", timestamp: "2026-06-23T13:06:42Z", message: nil, status_log_id: 41483, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:44], updated_at: ~N[2026-06-23 09:06:44]}} [2026-06-23 09:06:44.652] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:06:42Z", "value" => "online"} [2026-06-23 09:06:44.722] [DEBUG] QUERY OK db=27.9ms queue=41.4ms idle=38.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:06:42Z", "online", "network", 41483, ~N[2026-06-23 09:06:44], ~N[2026-06-23 09:06:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:06:44.723] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335154, itemkey: "network", value: "online", timestamp: "2026-06-23T13:06:42Z", message: nil, status_log_id: 41483, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:06:44], updated_at: ~N[2026-06-23 09:06:44]}} [2026-06-23 09:06:44.723] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 09:07:52.575] [INFO ] Running offline device check... [2026-06-23 09:07:52.575] [INFO ] Starting offline device check... [2026-06-23 09:07:52.579] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=1267.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 09:07:52.590] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.9ms idle=685.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.597] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=7.3ms idle=11.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.601] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=8.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.603] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms queue=0.1ms idle=4.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.603] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.2ms queue=0.1ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.605] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.606] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.607] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.608] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.612] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.617] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.0ms idle=4.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.619] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.628] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.8ms queue=0.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.634] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=5.5ms idle=10.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.637] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.3ms idle=6.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.639] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.640] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.655] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.7ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.657] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=16.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.658] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.660] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.661] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms queue=0.1ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.663] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.701] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=36.5ms queue=0.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.703] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=37.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.704] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.711] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.2ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.712] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=7.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.719] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.9ms idle=1.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.721] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=7.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.723] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=2.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.728] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.729] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=5.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.729] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.731] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.732] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.733] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.736] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=2.2ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.737] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.738] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.739] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:07:52.739] [INFO ] Offline device check completed. Found 37 offline devices, updated 0 statuses. [2026-06-23 09:07:52.739] [INFO ] Offline device check completed successfully [2026-06-23 09:11:44.436] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 09:11:44.436] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T13:11:42Z","org.device":[{"itemkey":"battery","value":30,"timestamp":"2026-06-23T13:11:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T13:11:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T13:11:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T13:11:42Z","message":""}]} [2026-06-23 09:11:44.436] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:11:42Z", "value" => 30}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:11:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:11:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:11:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T13:11:42Z"} [2026-06-23 09:11:44.437] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 09:11:44.439] [DEBUG] QUERY OK source="tms_terminals" db=2.1ms queue=0.1ms idle=386.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:11:44.440] [INFO ] Terminal updated: 61250424798001 [2026-06-23 09:11:44.474] [DEBUG] QUERY OK source="tms_terminals" db=33.5ms idle=89.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:11:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:11:44.480] [DEBUG] QUERY OK source="tms_terminals" db=1.0ms queue=2.9ms idle=36.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:11:44.490] [DEBUG] QUERY OK source="tms_terminals" db=9.6ms queue=0.1ms idle=6.3ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:11:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:11:44.516] [DEBUG] QUERY OK db=25.2ms queue=0.1ms idle=11.1ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T13:11:42Z", ~N[2026-06-23 09:11:44], ~N[2026-06-23 09:11:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:11:44.517] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41485, oid: "org-id-placeholder", upload_time: "2026-06-23T13:11:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:11:44], updated_at: ~N[2026-06-23 09:11:44]} [2026-06-23 09:11:44.517] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:11:42Z", "value" => 30} [2026-06-23 09:11:44.544] [DEBUG] QUERY OK db=27.1ms idle=26.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:11:42Z", "30", "battery", 41485, ~N[2026-06-23 09:11:44], ~N[2026-06-23 09:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:11:44.545] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335155, itemkey: "battery", value: "30", timestamp: "2026-06-23T13:11:42Z", message: nil, status_log_id: 41485, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:11:44], updated_at: ~N[2026-06-23 09:11:44]}} [2026-06-23 09:11:44.545] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:11:42Z", "value" => 50} [2026-06-23 09:11:44.570] [DEBUG] QUERY OK db=24.9ms idle=29.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T13:11:42Z", "50", "memory", 41485, ~N[2026-06-23 09:11:44], ~N[2026-06-23 09:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:11:44.571] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335157, itemkey: "memory", value: "50", timestamp: "2026-06-23T13:11:42Z", message: "Normal", status_log_id: 41485, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:11:44], updated_at: ~N[2026-06-23 09:11:44]}} [2026-06-23 09:11:44.571] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:11:42Z", "value" => 50} [2026-06-23 09:11:44.600] [DEBUG] QUERY OK db=28.5ms idle=27.3ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:11:42Z", "50", "cpu", 41485, ~N[2026-06-23 09:11:44], ~N[2026-06-23 09:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:11:44.602] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335159, itemkey: "cpu", value: "50", timestamp: "2026-06-23T13:11:42Z", message: nil, status_log_id: 41485, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:11:44], updated_at: ~N[2026-06-23 09:11:44]}} [2026-06-23 09:11:44.602] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:11:42Z", "value" => "online"} [2026-06-23 09:11:44.637] [DEBUG] QUERY OK db=34.7ms idle=31.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:11:42Z", "online", "network", 41485, ~N[2026-06-23 09:11:44], ~N[2026-06-23 09:11:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:11:44.637] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335161, itemkey: "network", value: "online", timestamp: "2026-06-23T13:11:42Z", message: nil, status_log_id: 41485, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:11:44], updated_at: ~N[2026-06-23 09:11:44]}} [2026-06-23 09:11:44.637] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 09:12:47.696] [INFO ] Performing scheduled filter cache refresh... [2026-06-23 09:12:47.701] [DEBUG] QUERY OK source="tms_terminals" db=2.5ms idle=347.2ms SELECT t0.`area`, t0.`vendor`, t0.`model` FROM `tms_terminals` AS t0 WHERE ((NOT (t0.`area` IS NULL) OR NOT (t0.`vendor` IS NULL)) OR NOT (t0.`model` IS NULL)) [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_terminal_filter_data/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:153 [2026-06-23 09:12:47.704] [DEBUG] QUERY OK source="filter_usage" db=3.0ms idle=335.7ms SELECT f0.`filter_type`, f0.`filter_value`, coalesce(sum(f0.`usage_count`), 0) FROM `filter_usage` AS f0 GROUP BY f0.`filter_type`, f0.`filter_value` [] ↳ TmsCore.TerminalManagement.FilterCacheService.get_usage_statistics/0, at: lib/tms_core/terminal_management/filter_cache_service.ex:190 [2026-06-23 09:12:47.704] [INFO ] Filter cache rebuilt: 0 areas, 4 vendors, 6 models [2026-06-23 09:12:52.740] [INFO ] Running offline device check... [2026-06-23 09:12:52.740] [INFO ] Starting offline device check... [2026-06-23 09:12:52.742] [DEBUG] QUERY OK source="tms_terminals" db=0.8ms queue=0.1ms idle=375.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 09:12:52.757] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.8ms idle=368.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.772] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=14.2ms queue=0.1ms idle=16.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.774] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=15.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.775] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.776] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.778] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.779] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.781] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.4ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.782] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.786] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.796] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.5ms idle=4.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.798] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.4ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.815] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.0ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.824] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms idle=17.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.827] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.9ms idle=9.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.829] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms queue=0.1ms idle=2.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.831] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.850] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=17.4ms queue=0.5ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.851] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=18.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.853] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.855] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.858] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.6ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.860] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.885] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=20.9ms queue=3.2ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.886] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=24.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.888] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.903] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=13.5ms idle=2.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.904] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=14.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.909] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.7ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.910] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms queue=0.4ms idle=5.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.911] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.918] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=6.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.919] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=7.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.923] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.1ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.925] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=3.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.928] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.9ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.931] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.7ms idle=3.4ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.933] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.5ms queue=0.1ms idle=2.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.934] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.936] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.2ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.938] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:12:52.938] [INFO ] Offline device check completed. Found 37 offline devices, updated 0 statuses. [2026-06-23 09:12:52.938] [INFO ] Offline device check completed successfully [2026-06-23 09:16:44.444] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 09:16:44.445] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T13:16:42Z","org.device":[{"itemkey":"battery","value":30,"timestamp":"2026-06-23T13:16:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T13:16:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T13:16:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T13:16:42Z","message":""}]} [2026-06-23 09:16:44.445] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:16:42Z", "value" => 30}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:16:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:16:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:16:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T13:16:42Z"} [2026-06-23 09:16:44.445] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 09:16:44.455] [DEBUG] QUERY OK source="tms_terminals" db=4.3ms idle=1022.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:16:44.455] [INFO ] Terminal updated: 61250424798001 [2026-06-23 09:16:44.475] [DEBUG] QUERY OK source="tms_terminals" db=12.2ms idle=907.6ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:16:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:16:44.479] [DEBUG] QUERY OK source="tms_terminals" db=2.4ms queue=0.9ms idle=25.2ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:16:44.499] [DEBUG] QUERY OK source="tms_terminals" db=17.3ms idle=4.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:16:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:16:44.541] [DEBUG] QUERY OK db=38.3ms queue=0.7ms idle=22.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T13:16:42Z", ~N[2026-06-23 09:16:44], ~N[2026-06-23 09:16:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:16:44.541] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41488, oid: "org-id-placeholder", upload_time: "2026-06-23T13:16:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:16:44], updated_at: ~N[2026-06-23 09:16:44]} [2026-06-23 09:16:44.541] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:16:42Z", "value" => 30} [2026-06-23 09:16:44.566] [DEBUG] QUERY OK db=24.5ms decode=0.1ms idle=45.1ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:16:42Z", "30", "battery", 41488, ~N[2026-06-23 09:16:44], ~N[2026-06-23 09:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:16:44.566] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335164, itemkey: "battery", value: "30", timestamp: "2026-06-23T13:16:42Z", message: nil, status_log_id: 41488, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:16:44], updated_at: ~N[2026-06-23 09:16:44]}} [2026-06-23 09:16:44.567] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:16:42Z", "value" => 50} [2026-06-23 09:16:44.594] [DEBUG] QUERY OK db=24.1ms queue=0.1ms idle=11.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T13:16:42Z", "50", "memory", 41488, ~N[2026-06-23 09:16:44], ~N[2026-06-23 09:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:16:44.595] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335166, itemkey: "memory", value: "50", timestamp: "2026-06-23T13:16:42Z", message: "Normal", status_log_id: 41488, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:16:44], updated_at: ~N[2026-06-23 09:16:44]}} [2026-06-23 09:16:44.595] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:16:42Z", "value" => 50} [2026-06-23 09:16:44.637] [DEBUG] QUERY OK db=42.3ms idle=29.0ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:16:42Z", "50", "cpu", 41488, ~N[2026-06-23 09:16:44], ~N[2026-06-23 09:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:16:44.638] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335168, itemkey: "cpu", value: "50", timestamp: "2026-06-23T13:16:42Z", message: nil, status_log_id: 41488, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:16:44], updated_at: ~N[2026-06-23 09:16:44]}} [2026-06-23 09:16:44.638] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:16:42Z", "value" => "online"} [2026-06-23 09:16:44.671] [DEBUG] QUERY OK db=31.6ms idle=44.7ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:16:42Z", "online", "network", 41488, ~N[2026-06-23 09:16:44], ~N[2026-06-23 09:16:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:16:44.672] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335170, itemkey: "network", value: "online", timestamp: "2026-06-23T13:16:42Z", message: nil, status_log_id: 41488, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:16:44], updated_at: ~N[2026-06-23 09:16:44]}} [2026-06-23 09:16:44.672] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey [2026-06-23 09:17:47.758] [INFO ] Starting scheduled rule validation [2026-06-23 09:17:47.758] [DEBUG] Validating missing assignments [2026-06-23 09:17:47.760] [DEBUG] QUERY OK source="terminal_group_rules" db=0.9ms idle=900.5ms SELECT t0.`id`, t0.`rule_name`, t0.`rule_type`, t0.`field_name`, t0.`operator`, t0.`value`, t0.`priority`, t0.`is_active`, t0.`conditions`, t0.`group_id`, t0.`inserted_at`, t0.`updated_at` FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) ORDER BY t0.`priority`, t0.`inserted_at` DESC [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:194 [2026-06-23 09:17:47.763] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.1ms idle=325.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.apply_all_rules/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:196 [2026-06-23 09:17:47.764] [DEBUG] Re-applied 0 rules during validation [2026-06-23 09:17:47.764] [DEBUG] Validating invalid assignments [2026-06-23 09:17:47.764] [DEBUG] Validating rule consistency [2026-06-23 09:17:47.764] [DEBUG] Updating group terminal counts [2026-06-23 09:17:47.765] [DEBUG] QUERY OK source="terminal_groups" db=1.1ms idle=4.5ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:248 [2026-06-23 09:17:47.768] [DEBUG] QUERY OK source="terminal_groups" db=2.3ms idle=2.3ms SELECT count(t0.`id`) FROM `terminal_groups` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:249 [2026-06-23 09:17:47.769] [DEBUG] QUERY OK source="terminal_groups" db=0.4ms idle=2.7ms SELECT t0.`group_type`, count(t0.`id`) FROM `terminal_groups` AS t0 GROUP BY t0.`group_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:255 [2026-06-23 09:17:47.769] [DEBUG] QUERY OK source="terminal_group_rules" db=0.2ms idle=0.8ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:258 [2026-06-23 09:17:47.770] [DEBUG] QUERY OK source="terminal_group_rules" db=1.1ms idle=0.5ms SELECT count(t0.`id`) FROM `terminal_group_rules` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:259 [2026-06-23 09:17:47.771] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.2ms idle=1.4ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:261 [2026-06-23 09:17:47.773] [DEBUG] QUERY OK source="terminal_group_memberships" db=2.1ms idle=0.6ms SELECT count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:262 [2026-06-23 09:17:47.774] [DEBUG] QUERY OK source="terminal_group_memberships" db=0.3ms idle=2.5ms SELECT t0.`assignment_type`, count(t0.`id`) FROM `terminal_group_memberships` AS t0 WHERE (t0.`is_active` = TRUE) GROUP BY t0.`assignment_type` [] ↳ TmsCore.TerminalManagement.TerminalGroupService.get_group_statistics/0, at: lib/tms_core/terminal_management/terminal_group_service.ex:269 [2026-06-23 09:17:47.774] [DEBUG] Current group statistics: %{rules: %{active: 0, total: 0}, groups: %{active: 0, total: 0, by_type: %{}}, assignments: %{active: 0, total: 0, by_type: %{}}} [2026-06-23 09:17:47.774] [INFO ] Rule validation completed - applied 0 fixes [2026-06-23 09:17:52.939] [INFO ] Running offline device check... [2026-06-23 09:17:52.939] [INFO ] Starting offline device check... [2026-06-23 09:17:52.941] [DEBUG] QUERY OK source="tms_terminals" db=0.9ms queue=0.1ms idle=1051.1ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 [] ↳ TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:747 [2026-06-23 09:17:52.957] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=15.6ms idle=48.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [1] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.967] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.9ms idle=16.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [2] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.971] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=10.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [3] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=4.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [4] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.973] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [5] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.975] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [6] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.977] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [7] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.978] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms queue=0.1ms idle=3.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [8] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.979] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [9] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.981] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.8ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [10] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.991] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.1ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [11] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:52.992] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.9ms idle=9.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [12] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.002] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=8.7ms queue=0.3ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [13] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.015] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=9.9ms idle=9.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [14] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=13.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [15] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.018] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.4ms idle=5.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [16] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.021] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [18] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.039] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=16.8ms queue=0.1ms idle=3.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [19] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.041] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.5ms idle=17.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [20] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.044] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.4ms idle=2.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [22] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.045] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms queue=0.2ms idle=3.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [23] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.046] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=1.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [26] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.048] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [29] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.074] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=25.4ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [33] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.076] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.1ms idle=27.1ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [35] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.080] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=3.3ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [36] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.092] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=11.9ms idle=4.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [37] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.094] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=12.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [39] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.097] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.6ms idle=1.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [42] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.100] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.8ms idle=3.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [43] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.102] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.3ms idle=3.7ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [44] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.107] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=4.3ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [45] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.109] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.0ms idle=5.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [46] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.111] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms queue=0.2ms idle=2.8ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [47] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.112] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.8ms idle=2.0ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [48] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.113] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.5ms queue=0.1ms idle=1.5ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [49] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.115] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=2.1ms idle=1.3ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [51] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.116] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.7ms idle=2.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [53] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.117] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.6ms idle=1.6ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [55] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.118] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=0.3ms idle=1.2ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [60] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.119] [DEBUG] QUERY OK source="tms_terminal_status_logs" db=1.0ms idle=0.9ms SELECT t0.`id`, t0.`oid`, t0.`upload_time`, t0.`terminal_id`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminal_status_logs` AS t0 WHERE (t0.`terminal_id` = ?) ORDER BY t0.`inserted_at` DESC LIMIT 1 [61] ↳ anonymous fn/3 in TmsCore.TerminalManagement.check_offline_devices/0, at: lib/tms_core/terminal_management.ex:762 [2026-06-23 09:17:53.120] [INFO ] Offline device check completed. Found 37 offline devices, updated 0 statuses. [2026-06-23 09:17:53.120] [INFO ] Offline device check completed successfully [2026-06-23 09:18:51.226] [INFO ] Received status update for terminal UNKNOWN_SN [2026-06-23 09:18:51.226] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T17:21:53Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T17:21:53Z","value":"100"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T17:21:53Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T17:21:53Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T17:21:53Z","value":""},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T17:21:53Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T17:21:53Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T17:21:53Z","value":""}],"oid":"organization_id","sn":"UNKNOWN_SN","uploadTime":"2026-06-23T17:21:53Z","vendor":"MoreFun"} [2026-06-23 09:18:51.227] [INFO ] Decoded JSON: %{"oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T17:21:53Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T17:21:53Z", "value" => "100"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T17:21:53Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T17:21:53Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T17:21:53Z", "value" => ""}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T17:21:53Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T17:21:53Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T17:21:53Z", "value" => ""}], "sn" => "UNKNOWN_SN", "uploadTime" => "2026-06-23T17:21:53Z", "vendor" => "MoreFun"} [2026-06-23 09:18:51.227] [INFO ] Extracted versions for UNKNOWN_SN: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: ""} [2026-06-23 09:18:51.261] [DEBUG] QUERY OK source="tms_terminals" db=34.1ms idle=1724.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["UNKNOWN_SN"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:18:51.261] [INFO ] Terminal updated: UNKNOWN_SN [2026-06-23 09:18:51.321] [DEBUG] QUERY OK source="tms_terminals" db=8.0ms queue=51.4ms idle=930.4ms UPDATE `tms_terminals` SET `status` = ?, `emv_config_version` = ?, `updated_at` = ? WHERE `id` = ? ["connected", "1.0.1", ~N[2026-06-23 09:18:51], 15] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:18:51.335] [DEBUG] QUERY OK source="tms_terminals" db=7.5ms queue=6.2ms idle=60.6ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["UNKNOWN_SN"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:18:51.395] [DEBUG] QUERY OK source="tms_terminals" db=0.5ms queue=58.8ms idle=14.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:18:51], 15] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:18:51.455] [DEBUG] QUERY OK db=58.4ms queue=0.6ms idle=26.2ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [15, "organization_id", "2026-06-23T17:21:53Z", ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:18:51.471] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41490, oid: "organization_id", upload_time: "2026-06-23T17:21:53Z", terminal_id: 15, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]} [2026-06-23 09:18:51.475] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T17:21:53Z", "value" => "online"} [2026-06-23 09:18:51.555] [DEBUG] QUERY OK db=78.8ms idle=79.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T17:21:53Z", "online", "status", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.555] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335173, itemkey: "status", value: "online", timestamp: "2026-06-23T17:21:53Z", message: "Terminal status update", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.555] [INFO ] Setting terminal UNKNOWN_SN status to 'online' from status itemkey [2026-06-23 09:18:51.585] [DEBUG] QUERY OK source="tms_terminals" db=15.6ms idle=114.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:18:51], 15] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 09:18:51.601] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T17:21:53Z", "value" => "100"} [2026-06-23 09:18:51.633] [DEBUG] QUERY OK db=27.2ms queue=5.1ms idle=46.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T17:21:53Z", "100", "battery", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.634] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335175, itemkey: "battery", value: "100", timestamp: "2026-06-23T17:21:53Z", message: "Battery level", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.634] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T17:21:53Z", "value" => "online"} [2026-06-23 09:18:51.677] [DEBUG] QUERY OK db=28.6ms idle=63.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T17:21:53Z", "online", "network", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.681] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335177, itemkey: "network", value: "online", timestamp: "2026-06-23T17:21:53Z", message: "Network connectivity", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.683] [INFO ] Setting terminal UNKNOWN_SN status to 'online' from network itemkey [2026-06-23 09:18:51.693] [DEBUG] QUERY OK source="tms_terminals" db=9.7ms idle=51.7ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:18:51], 15] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:158 [2026-06-23 09:18:51.693] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T17:21:53Z", "value" => "0"} [2026-06-23 09:18:51.746] [DEBUG] QUERY OK db=52.4ms idle=16.3ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T17:21:53Z", "0", "cpu", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.746] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335178, itemkey: "cpu", value: "0", timestamp: "2026-06-23T17:21:53Z", message: "CPU usage percentage", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.747] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T17:21:53Z", "value" => ""} [2026-06-23 09:18:51.832] [DEBUG] QUERY OK db=44.7ms queue=40.5ms idle=53.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current parameters version", "2026-06-23T17:21:53Z", "parameter_config", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.832] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335182, itemkey: "parameter_config", value: nil, timestamp: "2026-06-23T17:21:53Z", message: "Current parameters version", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.832] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T17:21:53Z", "value" => "1.0.1"} [2026-06-23 09:18:51.845] [DEBUG] QUERY OK db=12.3ms idle=86.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T17:21:53Z", "1.0.1", "emv_config", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.845] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335183, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T17:21:53Z", message: "Current EMV config version", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.845] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T17:21:53Z", "value" => ""} [2026-06-23 09:18:51.864] [DEBUG] QUERY OK db=18.0ms idle=13.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T17:21:53Z", "keys_config", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.864] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335184, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T17:21:53Z", message: "Current keys config version", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.864] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T17:21:53Z", "value" => ""} [2026-06-23 09:18:51.923] [DEBUG] QUERY OK db=16.5ms queue=40.6ms idle=19.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T17:21:53Z", "application", 41490, ~N[2026-06-23 09:18:51], ~N[2026-06-23 09:18:51]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:18:51.951] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335186, itemkey: "application", value: nil, timestamp: "2026-06-23T17:21:53Z", message: "Current application version", status_log_id: 41490, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:18:51], updated_at: ~N[2026-06-23 09:18:51]}} [2026-06-23 09:18:51.954] [DEBUG] QUERY OK source="tms_terminals" db=1.8ms idle=87.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:18:51], 15] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:188 [2026-06-23 09:20:00.065] [INFO ] Received status update for terminal UNKNOWN_SN [2026-06-23 09:20:00.065] [INFO ] Incoming JSON payload: {"org.device":[{"itemkey":"status","message":"Terminal status update","timestamp":"2026-06-23T17:22:58Z","value":"online"},{"itemkey":"battery","message":"Battery level","timestamp":"2026-06-23T17:22:58Z","value":"100"},{"itemkey":"network","message":"Network connectivity","timestamp":"2026-06-23T17:22:58Z","value":"online"},{"itemkey":"cpu","message":"CPU usage percentage","timestamp":"2026-06-23T17:22:58Z","value":"0"},{"itemkey":"parameter_config","message":"Current parameters version","timestamp":"2026-06-23T17:22:58Z","value":""},{"itemkey":"emv_config","message":"Current EMV config version","timestamp":"2026-06-23T17:22:58Z","value":"1.0.1"},{"itemkey":"keys_config","message":"Current keys config version","timestamp":"2026-06-23T17:22:58Z","value":""},{"itemkey":"application","message":"Current application version","timestamp":"2026-06-23T17:22:58Z","value":""},{"itemkey":"geo_url_1","message":"Location lookup service","timestamp":"2026-06-23T17:22:58Z","value":"https://freeipapi.com/api/json"},{"itemkey":"geo_url_2","message":"Location lookup service","timestamp":"2026-06-23T17:22:58Z","value":"https://ipwho.is/"},{"itemkey":"geo_url_3","message":"Location lookup service","timestamp":"2026-06-23T17:22:58Z","value":"http://ip-api.com/json/"},{"itemkey":"geo_url_4","message":"Location lookup service","timestamp":"2026-06-23T17:22:58Z","value":"https://ipapi.co/json/"}],"oid":"organization_id","sn":"UNKNOWN_SN","uploadTime":"2026-06-23T17:22:58Z","vendor":"MoreFun"} [2026-06-23 09:20:00.066] [INFO ] Decoded JSON: %{"oid" => "organization_id", "org.device" => [%{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T17:22:58Z", "value" => "online"}, %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T17:22:58Z", "value" => "100"}, %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T17:22:58Z", "value" => "online"}, %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T17:22:58Z", "value" => "0"}, %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T17:22:58Z", "value" => ""}, %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T17:22:58Z", "value" => "1.0.1"}, %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T17:22:58Z", "value" => ""}, %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T17:22:58Z", "value" => ""}, %{"itemkey" => "geo_url_1", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "https://freeipapi.com/api/json"}, %{"itemkey" => "geo_url_2", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "https://ipwho.is/"}, %{"itemkey" => "geo_url_3", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "http://ip-api.com/json/"}, %{"itemkey" => "geo_url_4", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "https://ipapi.co/json/"}], "sn" => "UNKNOWN_SN", "uploadTime" => "2026-06-23T17:22:58Z", "vendor" => "MoreFun"} [2026-06-23 09:20:00.066] [INFO ] Extracted versions for UNKNOWN_SN: %{application: "", emv_config: "1.0.1", keys_config: "", parameter_config: ""} [2026-06-23 09:20:00.068] [DEBUG] QUERY OK source="tms_terminals" db=0.7ms queue=0.6ms idle=1467.7ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["UNKNOWN_SN"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:20:00.068] [INFO ] Terminal updated: UNKNOWN_SN [2026-06-23 09:20:00.097] [DEBUG] QUERY OK source="tms_terminals" db=28.9ms idle=903.5ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:20:00], 15] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:20:00.099] [DEBUG] QUERY OK source="tms_terminals" db=1.1ms idle=29.8ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["UNKNOWN_SN"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:20:00.132] [DEBUG] QUERY OK source="tms_terminals" db=33.0ms idle=1.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:20:00], 15] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:20:00.163] [DEBUG] QUERY OK db=30.8ms idle=33.7ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [15, "organization_id", "2026-06-23T17:22:58Z", ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:20:00.164] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41492, oid: "organization_id", upload_time: "2026-06-23T17:22:58Z", terminal_id: 15, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]} [2026-06-23 09:20:00.164] [INFO ] Saving status item: %{"itemkey" => "status", "message" => "Terminal status update", "timestamp" => "2026-06-23T17:22:58Z", "value" => "online"} [2026-06-23 09:20:00.202] [DEBUG] QUERY OK db=37.2ms queue=0.2ms idle=32.0ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Terminal status update", "2026-06-23T17:22:58Z", "online", "status", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.202] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335188, itemkey: "status", value: "online", timestamp: "2026-06-23T17:22:58Z", message: "Terminal status update", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.202] [INFO ] Setting terminal UNKNOWN_SN status to 'online' from status itemkey [2026-06-23 09:20:00.202] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "Battery level", "timestamp" => "2026-06-23T17:22:58Z", "value" => "100"} [2026-06-23 09:20:00.227] [DEBUG] QUERY OK db=24.3ms idle=34.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Battery level", "2026-06-23T17:22:58Z", "100", "battery", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.227] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335190, itemkey: "battery", value: "100", timestamp: "2026-06-23T17:22:58Z", message: "Battery level", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.227] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "Network connectivity", "timestamp" => "2026-06-23T17:22:58Z", "value" => "online"} [2026-06-23 09:20:00.284] [DEBUG] QUERY OK db=56.3ms idle=26.1ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Network connectivity", "2026-06-23T17:22:58Z", "online", "network", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.284] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335192, itemkey: "network", value: "online", timestamp: "2026-06-23T17:22:58Z", message: "Network connectivity", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.285] [INFO ] Setting terminal UNKNOWN_SN status to 'online' from network itemkey [2026-06-23 09:20:00.285] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "CPU usage percentage", "timestamp" => "2026-06-23T17:22:58Z", "value" => "0"} [2026-06-23 09:20:00.320] [DEBUG] QUERY OK db=34.0ms idle=58.5ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["CPU usage percentage", "2026-06-23T17:22:58Z", "0", "cpu", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.326] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335194, itemkey: "cpu", value: "0", timestamp: "2026-06-23T17:22:58Z", message: "CPU usage percentage", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.326] [INFO ] Saving status item: %{"itemkey" => "parameter_config", "message" => "Current parameters version", "timestamp" => "2026-06-23T17:22:58Z", "value" => ""} [2026-06-23 09:20:00.426] [DEBUG] QUERY OK db=99.5ms queue=0.1ms idle=42.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current parameters version", "2026-06-23T17:22:58Z", "parameter_config", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.426] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335196, itemkey: "parameter_config", value: nil, timestamp: "2026-06-23T17:22:58Z", message: "Current parameters version", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.427] [INFO ] Saving status item: %{"itemkey" => "emv_config", "message" => "Current EMV config version", "timestamp" => "2026-06-23T17:22:58Z", "value" => "1.0.1"} [2026-06-23 09:20:00.465] [DEBUG] QUERY OK db=38.2ms idle=107.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Current EMV config version", "2026-06-23T17:22:58Z", "1.0.1", "emv_config", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.465] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335198, itemkey: "emv_config", value: "1.0.1", timestamp: "2026-06-23T17:22:58Z", message: "Current EMV config version", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.466] [INFO ] Saving status item: %{"itemkey" => "keys_config", "message" => "Current keys config version", "timestamp" => "2026-06-23T17:22:58Z", "value" => ""} [2026-06-23 09:20:00.527] [DEBUG] QUERY OK db=60.6ms idle=39.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current keys config version", "2026-06-23T17:22:58Z", "keys_config", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.527] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335200, itemkey: "keys_config", value: nil, timestamp: "2026-06-23T17:22:58Z", message: "Current keys config version", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.527] [INFO ] Saving status item: %{"itemkey" => "application", "message" => "Current application version", "timestamp" => "2026-06-23T17:22:58Z", "value" => ""} [2026-06-23 09:20:00.569] [DEBUG] QUERY OK db=40.9ms idle=62.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["Current application version", "2026-06-23T17:22:58Z", "application", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.569] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335202, itemkey: "application", value: nil, timestamp: "2026-06-23T17:22:58Z", message: "Current application version", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.570] [INFO ] Saving status item: %{"itemkey" => "geo_url_1", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "https://freeipapi.com/api/json"} [2026-06-23 09:20:00.616] [DEBUG] QUERY OK db=45.6ms idle=43.4ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Location lookup service", "2026-06-23T17:22:58Z", "https://freeipapi.com/api/json", "geo_url_1", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.616] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335204, itemkey: "geo_url_1", value: "https://freeipapi.com/api/json", timestamp: "2026-06-23T17:22:58Z", message: "Location lookup service", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.616] [INFO ] Saving status item: %{"itemkey" => "geo_url_2", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "https://ipwho.is/"} [2026-06-23 09:20:00.666] [DEBUG] QUERY OK db=49.5ms idle=47.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Location lookup service", "2026-06-23T17:22:58Z", "https://ipwho.is/", "geo_url_2", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.666] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335206, itemkey: "geo_url_2", value: "https://ipwho.is/", timestamp: "2026-06-23T17:22:58Z", message: "Location lookup service", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.667] [INFO ] Saving status item: %{"itemkey" => "geo_url_3", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "http://ip-api.com/json/"} [2026-06-23 09:20:00.708] [DEBUG] QUERY OK db=39.6ms idle=51.2ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Location lookup service", "2026-06-23T17:22:58Z", "http://ip-api.com/json/", "geo_url_3", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.708] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335209, itemkey: "geo_url_3", value: "http://ip-api.com/json/", timestamp: "2026-06-23T17:22:58Z", message: "Location lookup service", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:00.708] [INFO ] Saving status item: %{"itemkey" => "geo_url_4", "message" => "Location lookup service", "timestamp" => "2026-06-23T17:22:58Z", "value" => "https://ipapi.co/json/"} [2026-06-23 09:20:00.741] [DEBUG] QUERY OK db=32.1ms idle=20.6ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Location lookup service", "2026-06-23T17:22:58Z", "https://ipapi.co/json/", "geo_url_4", 41492, ~N[2026-06-23 09:20:00], ~N[2026-06-23 09:20:00]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:20:00.741] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335210, itemkey: "geo_url_4", value: "https://ipapi.co/json/", timestamp: "2026-06-23T17:22:58Z", message: "Location lookup service", status_log_id: 41492, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:20:00], updated_at: ~N[2026-06-23 09:20:00]}} [2026-06-23 09:20:05.904] [INFO ] CONNECTED TO Phoenix.LiveView.Socket in 36µs Transport: :longpoll Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "c3YlFBgTOm1VCGktPx4nXyUdNX4xFQ4Q4OpBsQw7aD_UXyo3rUb-Iy6J", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://demo.ctrmv.com:4026/assets/app.css", "1" => "http://demo.ctrmv.com:4026/assets/app.js"}, "vsn" => "2.0.0"} [2026-06-23 09:21:44.438] [INFO ] Received status update for terminal 61250424798001 [2026-06-23 09:21:44.438] [INFO ] Incoming JSON payload: {"oid":"org-id-placeholder","sn":"61250424798001","uploadTime":"2026-06-23T13:21:42Z","org.device":[{"itemkey":"battery","value":31,"timestamp":"2026-06-23T13:21:42Z","message":""},{"itemkey":"memory","value":50,"timestamp":"2026-06-23T13:21:42Z","message":"Normal"},{"itemkey":"cpu","value":50,"timestamp":"2026-06-23T13:21:42Z","message":""},{"itemkey":"network","value":"online","timestamp":"2026-06-23T13:21:42Z","message":""}]} [2026-06-23 09:21:44.438] [INFO ] Decoded JSON: %{"oid" => "org-id-placeholder", "org.device" => [%{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:21:42Z", "value" => 31}, %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:21:42Z", "value" => 50}, %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:21:42Z", "value" => 50}, %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:21:42Z", "value" => "online"}], "sn" => "61250424798001", "uploadTime" => "2026-06-23T13:21:42Z"} [2026-06-23 09:21:44.439] [INFO ] Extracted versions for 61250424798001: %{application: nil, emv_config: nil, keys_config: nil, parameter_config: nil} [2026-06-23 09:21:44.447] [DEBUG] QUERY OK source="tms_terminals" db=6.1ms idle=818.4ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:98 [2026-06-23 09:21:44.448] [INFO ] Terminal updated: 61250424798001 [2026-06-23 09:21:44.489] [DEBUG] QUERY OK source="tms_terminals" db=40.6ms idle=628.8ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["connected", ~N[2026-06-23 09:21:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:122 [2026-06-23 09:21:44.493] [DEBUG] QUERY OK source="tms_terminals" db=3.1ms idle=44.5ms SELECT t0.`id`, t0.`serial_number`, t0.`oid`, t0.`status`, t0.`model`, t0.`vendor`, t0.`area`, t0.`group`, t0.`imei`, t0.`imei2`, t0.`cpuid`, t0.`mac`, t0.`app_version`, t0.`data_version`, t0.`system_version`, t0.`secure_firmware`, t0.`factory_time`, t0.`boot_version`, t0.`pubkey`, t0.`appkey`, t0.`locked`, t0.`hardware_version`, t0.`driver_version`, t0.`pro_version`, t0.`module_version`, t0.`wifi_version`, t0.`remark`, t0.`otp_id`, t0.`netmac`, t0.`heart`, t0.`parameter_config_version`, t0.`emv_config_version`, t0.`keys_config_version`, t0.`kek_kcv`, t0.`slot_number`, t0.`last_keys_update`, t0.`merchant_id`, t0.`location_code`, t0.`deployment_type`, t0.`tier`, t0.`inserted_at`, t0.`updated_at` FROM `tms_terminals` AS t0 WHERE (t0.`serial_number` = ?) ["61250424798001"] ↳ TmsCore.TerminalManagement.update_heartbeat/1, at: lib/tms_core/terminal_management.ex:697 [2026-06-23 09:21:44.520] [DEBUG] QUERY OK source="tms_terminals" db=24.1ms queue=2.8ms idle=4.0ms UPDATE `tms_terminals` SET `status` = ?, `updated_at` = ? WHERE `id` = ? ["online", ~N[2026-06-23 09:21:44], 2] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:132 [2026-06-23 09:21:44.567] [DEBUG] QUERY OK db=46.4ms idle=27.8ms INSERT INTO `tms_terminal_status_logs` (`terminal_id`,`oid`,`upload_time`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?) [2, "org-id-placeholder", "2026-06-23T13:21:42Z", ~N[2026-06-23 09:21:44], ~N[2026-06-23 09:21:44]] ↳ DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:134 [2026-06-23 09:21:44.568] [INFO ] Saved status_log: %TmsCore.TerminalManagement.TmsTerminalStatusLog{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_logs">, id: 41494, oid: "org-id-placeholder", upload_time: "2026-06-23T13:21:42Z", terminal_id: 2, terminal: #Ecto.Association.NotLoaded, status_items: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:21:44], updated_at: ~N[2026-06-23 09:21:44]} [2026-06-23 09:21:44.568] [INFO ] Saving status item: %{"itemkey" => "battery", "message" => "", "timestamp" => "2026-06-23T13:21:42Z", "value" => 31} [2026-06-23 09:21:44.634] [DEBUG] QUERY OK db=22.8ms queue=43.4ms idle=47.8ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:21:42Z", "31", "battery", 41494, ~N[2026-06-23 09:21:44], ~N[2026-06-23 09:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:21:44.635] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335212, itemkey: "battery", value: "31", timestamp: "2026-06-23T13:21:42Z", message: nil, status_log_id: 41494, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:21:44], updated_at: ~N[2026-06-23 09:21:44]}} [2026-06-23 09:21:44.635] [INFO ] Saving status item: %{"itemkey" => "memory", "message" => "Normal", "timestamp" => "2026-06-23T13:21:42Z", "value" => 50} [2026-06-23 09:21:44.666] [DEBUG] QUERY OK db=30.7ms idle=67.8ms INSERT INTO `tms_terminal_status_items` (`message`,`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?,?) ["Normal", "2026-06-23T13:21:42Z", "50", "memory", 41494, ~N[2026-06-23 09:21:44], ~N[2026-06-23 09:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:21:44.666] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335214, itemkey: "memory", value: "50", timestamp: "2026-06-23T13:21:42Z", message: "Normal", status_log_id: 41494, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:21:44], updated_at: ~N[2026-06-23 09:21:44]}} [2026-06-23 09:21:44.668] [INFO ] Saving status item: %{"itemkey" => "cpu", "message" => "", "timestamp" => "2026-06-23T13:21:42Z", "value" => 50} [2026-06-23 09:21:44.700] [DEBUG] QUERY OK db=32.3ms idle=33.5ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:21:42Z", "50", "cpu", 41494, ~N[2026-06-23 09:21:44], ~N[2026-06-23 09:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:21:44.701] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335216, itemkey: "cpu", value: "50", timestamp: "2026-06-23T13:21:42Z", message: nil, status_log_id: 41494, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:21:44], updated_at: ~N[2026-06-23 09:21:44]}} [2026-06-23 09:21:44.701] [INFO ] Saving status item: %{"itemkey" => "network", "message" => "", "timestamp" => "2026-06-23T13:21:42Z", "value" => "online"} [2026-06-23 09:21:44.763] [DEBUG] QUERY OK db=19.3ms queue=42.1ms idle=35.2ms INSERT INTO `tms_terminal_status_items` (`timestamp`,`value`,`itemkey`,`status_log_id`,`inserted_at`,`updated_at`) VALUES (?,?,?,?,?,?) ["2026-06-23T13:21:42Z", "online", "network", 41494, ~N[2026-06-23 09:21:44], ~N[2026-06-23 09:21:44]] ↳ anonymous fn/4 in DaProductApp.MQTT.Handler.handle_message/3, at: lib/da_product_app/mqtt/handler.ex:144 [2026-06-23 09:21:44.763] [INFO ] Result of create_status_item: {:ok, %TmsCore.TerminalManagement.TmsTerminalStatusItem{__meta__: #Ecto.Schema.Metadata<:loaded, "tms_terminal_status_items">, id: 335218, itemkey: "network", value: "online", timestamp: "2026-06-23T13:21:42Z", message: nil, status_log_id: 41494, status_log: #Ecto.Association.NotLoaded, inserted_at: ~N[2026-06-23 09:21:44], updated_at: ~N[2026-06-23 09:21:44]}} [2026-06-23 09:21:44.763] [INFO ] Setting terminal 61250424798001 status to 'online' from network itemkey