diff --git a/app.py b/app.py index f8f16ce..5d4b80c 100644 --- a/app.py +++ b/app.py @@ -17,6 +17,7 @@ import ssl import urllib3 import subprocess import tempfile +import redis from urllib.parse import urlparse from requests.adapters import HTTPAdapter from urllib3.util.ssl_ import create_urllib3_context @@ -45,6 +46,10 @@ subscription_to_camera: Dict[str, str] = {} latest_frames: Dict[str, Any] = {} # Store cached detection dict after successful pipeline completion cached_detections: Dict[str, Dict[str, Any]] = {} +# Enhanced caching system for LPR integration +session_detections: Dict[str, Dict[str, Any]] = {} # session_id -> detection data +session_to_camera: Dict[str, str] = {} # session_id -> camera_id +detection_timestamps: Dict[str, float] = {} # session_id -> timestamp (for cleanup) # Track frame skipping for pipeline buffer after detection frame_skip_flags: Dict[str, bool] = {} # Track camera connection states for immediate error handling @@ -102,6 +107,335 @@ logger.info("Ensured models directory exists") # Constants for heartbeat and timeouts HEARTBEAT_INTERVAL = 2 # seconds + +# Global Redis connection for LPR integration +redis_client_global = None +lpr_listener_thread = None +cleanup_timer_thread = None +lpr_integration_started = False + +# Redis connection helper functions +def get_redis_config_from_model(camera_id: str) -> Dict[str, Any]: + """Extract Redis configuration from loaded model pipeline""" + try: + for model_id, model_tree in models.get(camera_id, {}).items(): + if hasattr(model_tree, 'get') and 'redis_client' in model_tree: + # Extract config from existing Redis client + client = model_tree['redis_client'] + if client: + return { + 'host': client.connection_pool.connection_kwargs['host'], + 'port': client.connection_pool.connection_kwargs['port'], + 'password': client.connection_pool.connection_kwargs.get('password'), + 'db': client.connection_pool.connection_kwargs.get('db', 0) + } + except Exception as e: + logger.debug(f"Could not extract Redis config from model: {e}") + + # Fallback - try to read from pipeline.json directly + try: + pipeline_dirs = [] + models_dir = "models" + if os.path.exists(models_dir): + for root, dirs, files in os.walk(models_dir): + if "pipeline.json" in files: + with open(os.path.join(root, "pipeline.json"), 'r') as f: + config = json.load(f) + if 'redis' in config: + return config['redis'] + except Exception as e: + logger.debug(f"Could not read Redis config from pipeline.json: {e}") + + return None + +def create_redis_connection() -> redis.Redis: + """Create Redis connection using config from pipeline""" + global redis_client_global + + if redis_client_global is not None: + try: + redis_client_global.ping() + return redis_client_global + except: + redis_client_global = None + + # Find any camera with a loaded model to get Redis config + redis_config = None + for camera_id in models.keys(): + redis_config = get_redis_config_from_model(camera_id) + if redis_config: + break + + if not redis_config: + logger.error("No Redis configuration found in any loaded models") + return None + + try: + redis_client_global = redis.Redis( + host=redis_config['host'], + port=redis_config['port'], + password=redis_config.get('password'), + db=redis_config.get('db', 0), + decode_responses=True, + socket_connect_timeout=5, + socket_timeout=5 + ) + redis_client_global.ping() + logger.info(f"โœ… Connected to Redis for LPR at {redis_config['host']}:{redis_config['port']}") + return redis_client_global + except Exception as e: + logger.error(f"โŒ Failed to connect to Redis for LPR: {e}") + redis_client_global = None + return None + +# LPR Integration Functions +def process_license_result(lpr_data: Dict[str, Any]): + """Process incoming LPR result and update backend""" + try: + # Enhanced debugging for LPR data reception + logger.info("=" * 60) + logger.info("๐Ÿš— LPR SERVICE DATA RECEIVED") + logger.info("=" * 60) + logger.info(f"๐Ÿ“ฅ Raw LPR data: {json.dumps(lpr_data, indent=2)}") + + session_id = str(lpr_data.get('session_id', '')) + license_text = lpr_data.get('license_character', '') + + logger.info(f"๐Ÿ” Extracted session_id: '{session_id}'") + logger.info(f"๐Ÿ” Extracted license_character: '{license_text}'") + logger.info(f"๐Ÿ“Š Current cached sessions count: {len(session_detections)}") + logger.info(f"๐Ÿ“Š Available session IDs: {list(session_detections.keys())}") + + # Find cached detection by session_id + if session_id not in session_detections: + logger.warning("โŒ LPR SESSION ID NOT FOUND!") + logger.warning(f" Looking for session_id: '{session_id}'") + logger.warning(f" Available sessions: {list(session_detections.keys())}") + logger.warning(f" Session count: {len(session_detections)}") + + # Additional debugging - show session timestamps + if session_detections: + logger.warning("๐Ÿ“… Available session details:") + for sid, timestamp in detection_timestamps.items(): + age = time.time() - timestamp + camera = session_to_camera.get(sid, 'unknown') + logger.warning(f" Session {sid}: camera={camera}, age={age:.1f}s") + else: + logger.warning(" No cached sessions available - worker may not have processed any detections yet") + + logger.warning("๐Ÿ’ก Possible causes:") + logger.warning(" 1. Session expired (TTL: 10 minutes)") + logger.warning(" 2. Session ID mismatch between detection and LPR service") + logger.warning(" 3. Detection was not cached (no sessionId from backend)") + logger.warning(" 4. Worker restarted after detection but before LPR result") + return + + # Get the original detection data + detection_data = session_detections[session_id].copy() + camera_id = session_to_camera.get(session_id, 'unknown') + + logger.info("โœ… LPR SESSION FOUND!") + logger.info(f" ๐Ÿ“น Camera ID: {camera_id}") + logger.info(f" โฐ Session age: {time.time() - detection_timestamps.get(session_id, 0):.1f} seconds") + + # Show original detection structure before update + original_license = detection_data.get('data', {}).get('detection', {}).get('licensePlateText') + logger.info(f" ๐Ÿ” Original licensePlateText: {original_license}") + logger.info(f" ๐Ÿ†• New licensePlateText: '{license_text}'") + + # Update licensePlateText in detection + if 'data' in detection_data and 'detection' in detection_data['data']: + detection_data['data']['detection']['licensePlateText'] = license_text + + logger.info("๐ŸŽฏ LICENSE PLATE UPDATE SUCCESS!") + logger.info(f" โœ… Updated detection for session {session_id}") + logger.info(f" โœ… Set licensePlateText = '{license_text}'") + + # Show full detection structure after update + detection_dict = detection_data['data']['detection'] + logger.info("๐Ÿ“‹ Updated detection dictionary:") + logger.info(f" carModel: {detection_dict.get('carModel')}") + logger.info(f" carBrand: {detection_dict.get('carBrand')}") + logger.info(f" bodyType: {detection_dict.get('bodyType')}") + logger.info(f" licensePlateText: {detection_dict.get('licensePlateText')} โ† UPDATED") + logger.info(f" licensePlateConfidence: {detection_dict.get('licensePlateConfidence')}") + else: + logger.error("โŒ INVALID DETECTION DATA STRUCTURE!") + logger.error(f" Session {session_id} has malformed detection data") + logger.error(f" Detection data keys: {list(detection_data.keys())}") + if 'data' in detection_data: + logger.error(f" Data keys: {list(detection_data['data'].keys())}") + return + + # Update timestamp to indicate this is an LPR update + detection_data['timestamp'] = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()) + + # Update all caches with new data + session_detections[session_id] = detection_data.copy() + cached_detections[camera_id] = detection_data.copy() + + # CRITICAL: Also update the pipeline state cached detection dict (used by lightweight mode) + if camera_id in session_pipeline_states: + pipeline_state = session_pipeline_states[camera_id] + current_cached_dict = pipeline_state.get("cached_detection_dict", {}) + + # Update the pipeline cached detection dict with new license plate + updated_dict = current_cached_dict.copy() if current_cached_dict else {} + updated_dict['licensePlateText'] = license_text + + pipeline_state["cached_detection_dict"] = updated_dict + logger.info(f"โœ… LPR: Updated pipeline state cached_detection_dict for camera {camera_id}") + logger.debug(f"๐Ÿ” Pipeline cached dict now: {updated_dict}") + else: + logger.warning(f"โš ๏ธ Camera {camera_id} not found in session_pipeline_states - pipeline cache not updated") + + logger.info("๐Ÿ“ก SENDING UPDATED DETECTION TO BACKEND") + logger.info(f" ๐Ÿ“น Camera ID: {camera_id}") + logger.info(f" ๐Ÿ“จ Updated licensePlateText: '{license_text}'") + logger.info(" ๐Ÿ”„ Updated both cache systems:") + logger.info(f" 1๏ธโƒฃ cached_detections[{camera_id}] โœ…") + logger.info(f" 2๏ธโƒฃ session_pipeline_states[{camera_id}].cached_detection_dict โœ…") + + # Log the full message being sent + logger.info("๐Ÿ“‹ Updated detection data in cache:") + logger.info(json.dumps(detection_data, indent=2)) + + logger.info("โœ… ALL CACHES UPDATED!") + logger.info(f" ๐ŸŽฏ Lightweight mode will now use updated licensePlateText") + logger.info(f" ๐Ÿ“ค Backend will receive: licensePlateText = '{license_text}'") + logger.info(" ๐Ÿ”„ Both cache systems synchronized with LPR data") + + logger.info("=" * 60) + logger.info("๐Ÿ LPR PROCESSING COMPLETE") + logger.info(f" Session: {session_id}") + logger.info(f" License: '{license_text}'") + logger.info(f" Status: โœ… SUCCESS - DETECTION CACHE UPDATED") + logger.info("=" * 60) + + except Exception as e: + logger.error("=" * 60) + logger.error("โŒ LPR PROCESSING FAILED") + logger.error("=" * 60) + logger.error(f"Error: {e}") + import traceback + logger.error(f"Traceback: {traceback.format_exc()}") + logger.error("=" * 60) + +# LPR integration now uses cached detection mechanism instead of direct WebSocket sending + +def license_results_listener(): + """Background thread to listen for LPR results from Redis""" + logger.info("๐ŸŽง Starting LPR listener thread...") + + while True: + try: + redis_client = create_redis_connection() + if not redis_client: + logger.error("โŒ No Redis connection available for LPR listener") + time.sleep(10) + continue + + pubsub = redis_client.pubsub() + pubsub.subscribe("license_results") + logger.info("โœ… LPR listener subscribed to 'license_results' channel") + + for message in pubsub.listen(): + try: + if message['type'] == 'message': + logger.info("๐Ÿ”” REDIS MESSAGE RECEIVED!") + logger.info(f" ๐Ÿ“ก Channel: {message['channel']}") + logger.info(f" ๐Ÿ“ฅ Raw data: {message['data']}") + logger.info(f" ๐Ÿ“ Data size: {len(str(message['data']))} bytes") + + try: + lpr_data = json.loads(message['data']) + logger.info("โœ… JSON parsing successful") + logger.info("๐Ÿ Starting LPR processing...") + process_license_result(lpr_data) + logger.info("โœ… LPR processing completed") + except json.JSONDecodeError as e: + logger.error("โŒ JSON PARSING FAILED!") + logger.error(f" Error: {e}") + logger.error(f" Raw data: {message['data']}") + logger.error(f" Data type: {type(message['data'])}") + except Exception as e: + logger.error("โŒ LPR PROCESSING ERROR!") + logger.error(f" Error: {e}") + import traceback + logger.error(f" Traceback: {traceback.format_exc()}") + elif message['type'] == 'subscribe': + logger.info(f"๐Ÿ“ก LPR listener subscribed to channel: {message['channel']}") + logger.info("๐ŸŽง Ready to receive license plate results...") + elif message['type'] == 'unsubscribe': + logger.warning(f"๐Ÿ“ก LPR listener unsubscribed from channel: {message['channel']}") + else: + logger.debug(f"๐Ÿ“ก Redis message type: {message['type']}") + + except Exception as e: + logger.error(f"โŒ Error in LPR message processing loop: {e}") + break + + except redis.exceptions.ConnectionError as e: + logger.error(f"โŒ Redis connection lost in LPR listener: {e}") + time.sleep(5) # Wait before reconnecting + except Exception as e: + logger.error(f"โŒ Unexpected error in LPR listener: {e}") + time.sleep(10) + + logger.warning("๐Ÿ›‘ LPR listener thread stopped") + +def cleanup_expired_sessions(): + """Remove sessions older than TTL (10 minutes)""" + try: + current_time = time.time() + ttl_seconds = 600 # 10 minutes + + expired_sessions = [ + session_id for session_id, timestamp in detection_timestamps.items() + if current_time - timestamp > ttl_seconds + ] + + if expired_sessions: + logger.info(f"๐Ÿงน Cleaning up {len(expired_sessions)} expired sessions") + + for session_id in expired_sessions: + session_detections.pop(session_id, None) + camera_id = session_to_camera.pop(session_id, None) + detection_timestamps.pop(session_id, None) + logger.debug(f"Cleaned up expired session: {session_id} (camera: {camera_id})") + + else: + logger.debug(f"๐Ÿงน No expired sessions to clean up ({len(detection_timestamps)} active)") + + except Exception as e: + logger.error(f"โŒ Error in session cleanup: {e}") + +def cleanup_timer(): + """Background thread for periodic session cleanup""" + logger.info("โฐ Starting session cleanup timer thread...") + + while True: + try: + time.sleep(120) # Run cleanup every 2 minutes + cleanup_expired_sessions() + except Exception as e: + logger.error(f"โŒ Error in cleanup timer: {e}") + time.sleep(120) + +def start_lpr_integration(): + """Start LPR integration threads""" + global lpr_listener_thread, cleanup_timer_thread + + # Start LPR listener thread + lpr_listener_thread = threading.Thread(target=license_results_listener, daemon=True, name="LPR-Listener") + lpr_listener_thread.start() + logger.info("โœ… LPR listener thread started") + + # Start cleanup timer thread + cleanup_timer_thread = threading.Thread(target=cleanup_timer, daemon=True, name="Session-Cleanup") + cleanup_timer_thread.start() + logger.info("โœ… Session cleanup timer thread started") + WORKER_TIMEOUT_MS = 10000 logger.debug(f"Heartbeat interval set to {HEARTBEAT_INTERVAL} seconds") @@ -335,6 +669,37 @@ def update_session_pipeline_mode(camera_id, new_mode, session_id=None): #################################################### # REST API endpoint for image retrieval #################################################### +@app.get("/lpr/debug") +async def get_lpr_debug_info(): + """Debug endpoint to inspect LPR integration state""" + try: + return { + "status": "success", + "lpr_integration_started": lpr_integration_started, + "redis_connected": redis_client_global is not None and redis_client_global.ping() if redis_client_global else False, + "active_sessions": len(session_detections), + "session_details": { + session_id: { + "camera_id": session_to_camera.get(session_id, "unknown"), + "timestamp": detection_timestamps.get(session_id, 0), + "age_seconds": time.time() - detection_timestamps.get(session_id, time.time()), + "has_license": session_detections[session_id].get('data', {}).get('detection', {}).get('licensePlateText') is not None + } + for session_id in session_detections.keys() + }, + "thread_status": { + "lpr_listener_alive": lpr_listener_thread.is_alive() if lpr_listener_thread else False, + "cleanup_timer_alive": cleanup_timer_thread.is_alive() if cleanup_timer_thread else False + }, + "cached_detections_by_camera": list(cached_detections.keys()) + } + except Exception as e: + return { + "status": "error", + "error": str(e), + "lpr_integration_started": lpr_integration_started + } + @app.get("/camera/{camera_id}/image") async def get_camera_image(camera_id: str): """ @@ -889,6 +1254,15 @@ async def detect(websocket: WebSocket): if detection_dict is not None and detection_result.get("class") != "none": cached_detections[camera_id] = detection_data.copy() logger.debug(f"Cached detection for camera {camera_id}: {detection_dict}") + + # Enhanced caching: Store by session_id for LPR integration + session_id = detection_data.get('sessionId') + if session_id: + session_id_str = str(session_id) + session_detections[session_id_str] = detection_data.copy() + session_to_camera[session_id_str] = camera_id + detection_timestamps[session_id_str] = time.time() + logger.debug(f"๐Ÿ”‘ Cached detection for LPR by session_id {session_id_str}: {camera_id}") else: # Don't cache null/none detections - let them reset properly cached_detections.pop(camera_id, None) @@ -1258,6 +1632,16 @@ async def detect(websocket: WebSocket): if camera_id not in models: models[camera_id] = {} models[camera_id][modelId] = model_tree + + # Start LPR integration threads after first model is loaded (only once) + global lpr_integration_started + if not lpr_integration_started and hasattr(model_tree, 'get') and model_tree.get('redis_client'): + try: + start_lpr_integration() + lpr_integration_started = True + logger.info("๐Ÿš€ LPR integration started after first model load") + except Exception as e: + logger.error(f"โŒ Failed to start LPR integration: {e}") # Create stream (same logic as original) if camera_id and (rtsp_url or snapshot_url) and len(streams) < max_streams: @@ -1572,6 +1956,15 @@ async def detect(websocket: WebSocket): models[camera_id][modelId] = model_tree logger.info(f"Successfully loaded model {modelId} for camera {camera_id}") logger.debug(f"Model extraction directory: {extraction_dir}") + + # Start LPR integration threads after first model is loaded (only once) + if not lpr_integration_started and hasattr(model_tree, 'get') and model_tree.get('redis_client'): + try: + start_lpr_integration() + lpr_integration_started = True + logger.info("๐Ÿš€ LPR integration started after first model load") + except Exception as e: + logger.error(f"โŒ Failed to start LPR integration: {e}") if camera_id and (rtsp_url or snapshot_url): with streams_lock: # Determine camera URL for shared stream management @@ -1798,6 +2191,47 @@ async def detect(websocket: WebSocket): logger.debug(f"Session IDs after update: {session_ids}") logger.debug(f"๐ŸŽฏ CMS Backend created sessionId {session_id} after receiving detection data") + # ๐Ÿ”‘ LPR Integration: Retroactively cache the last detection by this new session_id + session_id_str = str(session_id) + logger.info(f"๐Ÿ”‘ LPR: Attempting to retroactively cache detection for session_id {session_id_str}") + + # Find cameras associated with this display + display_cameras = [] + with streams_lock: + for camera_id, stream in streams.items(): + if stream["subscriptionIdentifier"].startswith(display_identifier + ";"): + display_cameras.append(camera_id) + + logger.debug(f"๐Ÿ” Found {len(display_cameras)} cameras for display {display_identifier}: {display_cameras}") + + # Cache the most recent detection for each camera by the new session_id + cached_count = 0 + for camera_id in display_cameras: + if camera_id in cached_detections: + detection_data = cached_detections[camera_id].copy() + + # Add sessionId to the detection data + detection_data['sessionId'] = session_id + + # Cache by session_id for LPR lookup + session_detections[session_id_str] = detection_data + session_to_camera[session_id_str] = camera_id + detection_timestamps[session_id_str] = time.time() + cached_count += 1 + + logger.info(f"โœ… LPR: Cached detection for session_id {session_id_str} -> camera {camera_id}") + logger.debug(f"๐Ÿ” Detection data: {detection_data.get('data', {}).get('detection', {})}") + else: + logger.debug(f"โš ๏ธ No cached detection available for camera {camera_id}") + + if cached_count > 0: + logger.info(f"๐ŸŽ‰ LPR: Successfully cached {cached_count} detection(s) for session_id {session_id_str}") + logger.info(f"๐Ÿ“Š Total LPR sessions now cached: {len(session_detections)}") + else: + logger.warning(f"โš ๏ธ LPR: No detections could be cached for session_id {session_id_str}") + logger.warning(f" Display cameras: {display_cameras}") + logger.warning(f" Available cached detections: {list(cached_detections.keys())}") + # Clear waiting state for cameras associated with this display with streams_lock: affected_cameras = [] @@ -1881,4 +2315,8 @@ async def detect(websocket: WebSocket): cached_full_pipeline_results.clear() session_pipeline_states.clear() session_ids.clear() + # Clean up LPR integration caches + session_detections.clear() + session_to_camera.clear() + detection_timestamps.clear() logger.info("WebSocket connection closed") diff --git a/test_lpr.py b/test_lpr.py new file mode 100644 index 0000000..ff06da6 --- /dev/null +++ b/test_lpr.py @@ -0,0 +1,92 @@ +#!/usr/bin/env python3 +""" +Test script for LPR (License Plate Recognition) integration. +This script simulates LPR service sending license plate results to Redis. +""" + +import json +import time +import redis +import sys +import os + +def main(): + """Test LPR integration by sending mock license plate results to Redis""" + + # Redis configuration (should match pipeline.json) + redis_config = { + 'host': '10.100.1.3', + 'port': 6379, + 'password': 'FBQgi0i5RevAAMO5Hh66', + 'db': 0 + } + + try: + # Connect to Redis + print("๐Ÿ”Œ Connecting to Redis...") + redis_client = redis.Redis( + host=redis_config['host'], + port=redis_config['port'], + password=redis_config['password'], + db=redis_config['db'], + decode_responses=True + ) + + # Test connection + redis_client.ping() + print(f"โœ… Connected to Redis at {redis_config['host']}:{redis_config['port']}") + + # Mock LPR results to send + test_cases = [ + { + "session_id": "123", + "license_character": "ABC-1234" + }, + { + "session_id": "124", + "license_character": "XYZ-5678" + }, + { + "session_id": "125", + "license_character": "DEF-9999" + } + ] + + print("\n๐Ÿงช Sending mock LPR results...") + + for i, test_case in enumerate(test_cases, 1): + print(f"\n๐Ÿ“ค Test {i}: Sending LPR result for session {test_case['session_id']}") + print(f" License: {test_case['license_character']}") + + # Publish to license_results channel + result = redis_client.publish("license_results", json.dumps(test_case)) + print(f" ๐Ÿ“ก Published to 'license_results' channel (subscribers: {result})") + + if result == 0: + print(" โš ๏ธ Warning: No subscribers listening to 'license_results' channel") + print(" ๐Ÿ’ก Make sure the detector worker is running and has loaded a model") + + # Wait between test cases + if i < len(test_cases): + print(" โณ Waiting 3 seconds before next test...") + time.sleep(3) + + print(f"\nโœ… Completed {len(test_cases)} test cases") + print("๐Ÿ” Check detector worker logs for LPR processing messages:") + print(" - Look for '๐Ÿš— LPR Result received' messages") + print(" - Look for 'โœ… Updated detection' messages") + print(" - Look for '๐Ÿ“ค Sent LPR update to backend' messages") + + except redis.exceptions.ConnectionError as e: + print(f"โŒ Failed to connect to Redis: {e}") + print("๐Ÿ’ก Make sure Redis is running and accessible") + sys.exit(1) + + except Exception as e: + print(f"โŒ Error during testing: {e}") + sys.exit(1) + +if __name__ == "__main__": + print("๐Ÿงช LPR Integration Test Script") + print("=" * 50) + main() \ No newline at end of file diff --git a/websocket_comm.log b/websocket_comm.log index c88a22e..b9dc5b7 100644 --- a/websocket_comm.log +++ b/websocket_comm.log @@ -2641,3 +2641,319 @@ 2025-08-29 00:56:51,499 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T17:56:51Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} 2025-08-29 00:56:53,072 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T17:56:53Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} 2025-08-29 00:56:55,677 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T17:56:55Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:25:18,643 [INFO] WebSocket communication logging started - TX/RX format +2025-08-29 01:25:24,888 [INFO] RX <- {"type":"subscribe","payload":{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"","modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T182524Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=77cda8178a749b675fdf7dea3c86bcd8b8ebe621e536ef52a629036a8c6c29ff","modelName":"bangchak_poc","modelId":21}} +2025-08-29 01:25:31,104 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":180}} +2025-08-29 01:25:50,765 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T182550Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=bab736397b44c34e417b89b0f0ac24fb4f5e2e8526165e2bed5f8db96fa89515","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:25:50,767 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:25:50Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:25:50,806 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":null}} +2025-08-29 01:25:51,654 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:25:51Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:25:53,347 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:25:53Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:25:55,405 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:25:55Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:25:57,463 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:25:57Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:25:59,544 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:25:59Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:01,569 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:01Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:03,604 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:03Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:05,692 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:05Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:07,622 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:07Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:09,641 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:09Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:11,762 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:11Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:13,855 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:13Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:15,825 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:15Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:17,879 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:17Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:19,364 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:19Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:20,766 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T182620Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=fcdfc360359e51812f10ef457daafe246ff0cf1224ce68a810bf2b86ad3c2b41","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:26:21,357 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:23,591 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:25,521 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:25Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:27,349 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:29,405 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:29Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:31,434 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:33,457 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:35,543 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:37,538 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:37Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:39,699 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:39Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:41,613 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:41Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:43,728 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:43Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:45,684 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:45Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:47,697 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:47Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:49,226 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:49Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:50,767 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T182650Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=27054eed77f501f2bd8ba385fa9ef06c25816637e89959451ce7ca9630fbde0b","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:26:51,715 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:51Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:53,858 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:53Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:55,377 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:55Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:57,357 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:57Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:26:59,377 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:26:59Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:01,388 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:01Z","data":{"detection":{},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:01,404 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":181}} +2025-08-29 01:27:04,543 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:04Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:05,672 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:05Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:07,784 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:07Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:09,729 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:09Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:11,782 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:11Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:13,830 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:13Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:15,933 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:15Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:17,444 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:17Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:19,413 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:19Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:20,770 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T182720Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5b7dcc8a5826932b67cbdad86a33193c5bf683583693cd4eb13a72a610284321","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:27:21,495 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:21Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:23,973 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:23Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:25,499 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:25Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:28,171 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:28Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:29,849 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:29Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:31,742 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:31Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:33,760 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:33Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:35,772 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:35Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:37,915 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:37Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:39,823 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:39Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:41,887 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:41Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:43,864 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:43Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:45,852 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:45Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:47,840 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:47Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:49,932 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:49Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:50,775 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T182750Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f694c3e88d0cb84cc31fef10e22434302bae1bad00637db784eee8086fda30c9","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:27:51,983 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:51Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:54,016 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:54Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:56,009 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:56Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:57,547 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:57Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:27:59,560 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:27:59Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:28:01,643 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:28:01Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:28:03,659 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:28:03Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:28:05,678 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:28:05Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:28:07,656 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:28:07Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:28:09,781 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:28:09Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:32:58,119 [INFO] WebSocket communication logging started - TX/RX format +2025-08-29 01:33:12,868 [INFO] RX <- {"type":"subscribe","payload":{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"","modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T183312Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=25dfc895e3fffc1b74d9b8f52935061ee0c2624bb72145e8a55f3ff82fcf0a44","modelName":"bangchak_poc","modelId":21}} +2025-08-29 01:33:19,028 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":181}} +2025-08-29 01:33:20,817 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T183320Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=4bd825f820f88a114f846fac06160b0f143d1d6289c51c4db38a7b5640dd5a3b","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:33:20,817 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:20Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:20,837 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":null}} +2025-08-29 01:33:21,800 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:23,455 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:24,975 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:24Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:27,039 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:29,158 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:29Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:31,101 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:33,204 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:35,224 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:37,148 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:37Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:39,235 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:39Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:41,243 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:41Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:43,268 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:43Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:45,381 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:45Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:47,414 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:47Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:49,476 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:49Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:50,821 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T183350Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=cc8495b754abb47a097c85106b9295300d95512186f1532e87d4fc56a1bf3fce","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:33:51,454 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:51Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:53,515 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:53Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:55,515 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:55Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:57,506 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:57Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:33:59,504 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:33:59Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:01,558 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:01Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:03,638 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:03Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:05,776 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:05Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:07,324 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:07Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:09,210 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:09Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:11,319 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:11Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:13,319 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:13Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:15,359 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:15Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:17,356 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:17Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:19,438 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:19Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:20,823 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T183420Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f61e4d74b83b18686d5923c2be451676db53676d9cc0482c19e403513d91f0f4","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:34:21,410 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:23,501 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:25,583 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:25Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:27,565 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:29,491 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:29Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:31,537 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:33,562 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:35,585 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:37,653 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:37Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:39,756 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:39Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:41,718 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:41Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:43,818 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:43Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:45,859 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:45Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:47,401 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:47Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:49,384 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:49Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:50,829 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T183450Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=3c1be26323688d8abe54cd74901d85fbda848b92cb20ce869ce32af2cc4582fe","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:34:51,488 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:51Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:53,510 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:53Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:55,483 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:55Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:57,612 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:57Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:34:59,633 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:34:59Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:01,606 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:01Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:03,660 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:03Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:05,743 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:05Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:07,800 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:07Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:09,813 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:09Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:11,764 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:11Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:13,772 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:13Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:15,790 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:15Z","data":{"detection":{},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:15,807 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":182}} +2025-08-29 01:35:18,939 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:18Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:19,564 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:19Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:20,834 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T183520Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1a5c25f2f05b95da715e56cacdc499abe434d8d01f7afe1f35c993d10a11a99c","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:35:21,575 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:21Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:23,597 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:23Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:25,712 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:25Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:27,710 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:27Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:29,767 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:29Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:35:31,753 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:35:31Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:41:23,243 [INFO] WebSocket communication logging started - TX/RX format +2025-08-29 01:42:05,097 [INFO] RX <- {"type":"subscribe","payload":{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"","modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T184204Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=04142a6aec2028a31802ea001152662f385ab94c0898ac20c855b7859a3c2183","modelName":"bangchak_poc","modelId":21}} +2025-08-29 01:42:11,217 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":182}} +2025-08-29 01:42:20,887 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T184220Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=b1a8a1a143e861aad34ff25d97913f7c077b628600aaae9789b7af73b632a72f","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:42:20,891 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:20Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:20,911 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":null}} +2025-08-29 01:42:21,792 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:23,528 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:25,555 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:25Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:27,093 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:29,131 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:29Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:31,170 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:33,232 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:35,258 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:37,277 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:37Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:39,311 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:39Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:41,429 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:41Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:43,383 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:43Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:45,509 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:45Z","data":{"detection":{},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:45,529 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":183}} +2025-08-29 01:42:47,493 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:47Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:47,516 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":null}} +2025-08-29 01:42:49,662 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:49Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:50,889 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T184250Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f70cb32cf073cd72a5f07ac0081829d79a60b9562d3cae8c63bd4554374ab70f","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:42:51,632 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:51Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:53,637 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:53Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:55,673 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:55Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:57,691 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:57Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:42:59,724 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:42:59Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:01,813 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:01Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:03,757 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:03Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:05,248 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:05Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:07,297 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:07Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:09,338 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:09Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:11,349 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:11Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:13,464 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:13Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:15,482 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:15Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:17,461 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:17Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:19,572 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:19Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:20,894 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T184320Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=24952138a2b43f59409b5c9144f371001e866f4806ae06a56bb85b91a558b213","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:43:21,523 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:23,621 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:25,593 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:25Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:27,597 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:29,635 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:29Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:31,724 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:33,702 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:35,778 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:37,805 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:37Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:39,805 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:39Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:41,835 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:41Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:43,462 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:43Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:45,455 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:45Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:47,540 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:43:47Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:43:58,911 [INFO] WebSocket communication logging started - TX/RX format +2025-08-29 01:43:59,280 [INFO] RX <- {"type":"subscribe","payload":{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"","modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T184358Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=e111189769862219db099bae51d549f4454015c5b493f585eea37bd7533c803d","modelName":"bangchak_poc","modelId":21}} +2025-08-29 01:44:20,903 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T184420Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c0161ddfb23b851184f8db8a07037a94fe659684f3d7f6ffe3f1fa66d2dd3790","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:44:20,907 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:20Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:21,412 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:23,146 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:25,270 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:25Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:27,228 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:29,299 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:29Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:31,279 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:33,338 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:35,443 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:37,479 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:37Z","data":{"detection":{},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:37,496 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":184}} +2025-08-29 01:44:40,669 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:40Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:41,293 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:41Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:43,316 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:43Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:45,341 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:45Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:47,378 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:47Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:49,433 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:49Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 01:44:50,904 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T184450Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=c837b4b6f5d21130eb72ab35a93982f0e78941fa5143bb186d9e5c961d9f5532","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 01:44:51,464 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T18:44:51Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:01:31,757 [INFO] WebSocket communication logging started - TX/RX format +2025-08-29 02:02:05,175 [INFO] RX <- {"type":"subscribe","payload":{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"","modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T190204Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6619c62fd0777dc9e20829d043cd9d025c0f9cdded146342ea9bf9a632cbcd29","modelName":"bangchak_poc","modelId":21}} +2025-08-29 02:02:13,360 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":184}} +2025-08-29 02:02:21,017 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T190220Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=0df8a7ed3ab0ab1cb7510508107902c029d9dc8a886228d7e3fa8b79917066a0","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 02:02:21,038 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:21,064 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":null}} +2025-08-29 02:02:23,295 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:23,599 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:25,565 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:25Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:27,545 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:30,125 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:30Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:31,729 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:33,740 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:35,703 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:38,242 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:38Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:39,810 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:39Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:41,862 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:41Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:43,830 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:43Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:45,912 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:45Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:48,041 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:48Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:49,915 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:49Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:51,022 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T190250Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5bbd005b66db6f9830b70f131b43d1d816f4f2d019c5d374d1c468380d24ec08","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 02:02:51,978 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:51Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:53,929 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:53Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:56,086 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:56Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:02:58,029 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:02:58Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:00,051 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:00Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:02,086 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:02Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:04,138 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:04Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:06,303 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:06Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:08,251 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:08Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:10,316 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:10Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:12,337 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:12Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:13,733 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:13Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:15,669 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:15Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:17,710 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:17Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:19,800 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:19Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:21,020 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T190320Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=48c0909f723371a0d24a6c354d6a134a44ec16e40a823ea23c5f8aaf751fd5c3","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 02:03:21,808 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:21Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:23,831 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:23Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:25,855 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:25Z","data":{"detection":{},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:25,876 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":185}} +2025-08-29 02:03:29,042 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:29Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:29,669 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:29Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:31,705 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:31Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:33,801 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:33Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:35,778 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:35Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:37,807 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:37Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:39,844 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:39Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:03:41,898 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:03:41Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:09:37,133 [INFO] WebSocket communication logging started - TX/RX format +2025-08-29 02:10:17,157 [INFO] RX <- {"type":"subscribe","payload":{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"","modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T191016Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=5ebceac0a2aa8f1862161d7a8e32dcec6a77594cb9ec648d08585673df65239c","modelName":"bangchak_poc","modelId":21}} +2025-08-29 02:10:24,522 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":185}} +2025-08-29 02:10:24,523 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T191020Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=1339bbc74caf57c36aa1abbcd09ec3db5a71ba4f37bc7189ebd27dca8a926156","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 02:10:24,525 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:24Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:24,600 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":null}} +2025-08-29 02:10:25,823 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:25Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:27,001 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:27Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:29,125 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:29Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:31,087 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:31Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:33,148 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:33Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:35,329 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:35Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:37,467 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:37Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:39,316 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:39Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:41,489 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:41Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:43,216 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:43Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:45,271 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:45Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:47,274 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:47Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:49,378 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:49Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:50,824 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:50Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:51,071 [INFO] RX <- {"type":"setSubscriptionList","subscriptions":[{"subscriptionIdentifier":"test2;webcam-local-01","rtspUrl":"rtsp://10.101.1.4:8554/stream","snapshotUrl":"http://10.101.1.4:8080/snapshot","snapshotInterval":2000,"modelUrl":"https://s3.adsist.net/adsist-cms-staging/models/bangchak_poc-1756312318569.mpta?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=cms-1752937116-2480%2F20250828%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250828T191050Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=6b5df3332e3e9f7caff96a862b1bbe1447d8b727ea0b0522b887dbf3361893c0","modelId":21,"modelName":"bangchak_poc"}]} +2025-08-29 02:10:52,861 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:52Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:54,888 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:54Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:56,959 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:56Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:10:59,052 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:10:59Z","data":{"detection":null,"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:11:01,018 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:11:01Z","data":{"detection":{},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:11:01,034 [INFO] RX <- {"type":"setSessionId","payload":{"displayIdentifier":"test2","sessionId":186}} +2025-08-29 02:11:04,269 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:11:04Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":null,"licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:11:05,490 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:11:05Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":"\u0e0e\u0e2840 314","licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:11:06,890 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:11:06Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":"\u0e0e\u0e2840 314","licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:11:08,913 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:11:08Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":"\u0e0e\u0e2840 314","licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}} +2025-08-29 02:11:11,049 [INFO] TX -> {"type":"imageDetection","subscriptionIdentifier":"test2;webcam-local-01","timestamp":"2025-08-28T19:11:11Z","data":{"detection":{"carModel":null,"carBrand":"Toyota","carYear":null,"bodyType":"Pickup","licensePlateText":"\u0e0e\u0e2840 314","licensePlateConfidence":null},"modelId":21,"modelName":"bangchak_poc"}}