Files
geutebruck/.playwright-mcp/test-results.json
Administrator 14893e62a5 feat: Geutebruck GeViScope/GeViSoft Action Mapping System - MVP
This MVP release provides a complete full-stack solution for managing action mappings
in Geutebruck's GeViScope and GeViSoft video surveillance systems.

## Features

### Flutter Web Application (Port 8081)
- Modern, responsive UI for managing action mappings
- Action picker dialog with full parameter configuration
- Support for both GSC (GeViScope) and G-Core server actions
- Consistent UI for input and output actions with edit/delete capabilities
- Real-time action mapping creation, editing, and deletion
- Server categorization (GSC: prefix for GeViScope, G-Core: prefix for G-Core servers)

### FastAPI REST Backend (Port 8000)
- RESTful API for action mapping CRUD operations
- Action template service with comprehensive action catalog (247 actions)
- Server management (G-Core and GeViScope servers)
- Configuration tree reading and writing
- JWT authentication with role-based access control
- PostgreSQL database integration

### C# SDK Bridge (gRPC, Port 50051)
- Native integration with GeViSoft SDK (GeViProcAPINET_4_0.dll)
- Action mapping creation with correct binary format
- Support for GSC and G-Core action types
- Proper Camera parameter inclusion in action strings (fixes CrossSwitch bug)
- Action ID lookup table with server-specific action IDs
- Configuration reading/writing via SetupClient

## Bug Fixes
- **CrossSwitch Bug**: GSC and G-Core actions now correctly display camera/PTZ head parameters in GeViSet
- Action strings now include Camera parameter: `@ PanLeft (Comment: "", Camera: 101028)`
- Proper filter flags and VideoInput=0 for action mappings
- Correct action ID assignment (4198 for GSC, 9294 for G-Core PanLeft)

## Technical Stack
- **Frontend**: Flutter Web, Dart, Dio HTTP client
- **Backend**: Python FastAPI, PostgreSQL, Redis
- **SDK Bridge**: C# .NET 8.0, gRPC, GeViSoft SDK
- **Authentication**: JWT tokens
- **Configuration**: GeViSoft .set files (binary format)

## Credentials
- GeViSoft/GeViScope: username=sysadmin, password=masterkey
- Default admin: username=admin, password=admin123

## Deployment
All services run on localhost:
- Flutter Web: http://localhost:8081
- FastAPI: http://localhost:8000
- SDK Bridge gRPC: localhost:50051
- GeViServer: localhost (default port)

Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-31 18:10:54 +01:00

171 lines
57 KiB
JSON

{
"errors": [],
"networkLogs": [
{
"type": "request",
"method": "POST",
"url": "http://100.81.138.77:8000/api/v1/auth/login",
"headers": {
"referer": "http://100.81.138.77:8081/",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
"accept": "application/json",
"content-type": "application/json"
},
"timestamp": "2025-12-23T15:06:23.899Z"
},
{
"type": "response",
"status": 200,
"url": "http://100.81.138.77:8000/api/v1/auth/login",
"body": "{\"access_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxZGZmNzhiMi0yYjJhLTRiNmUtODMzMS05YzlmM2ZjMDZiOTEiLCJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE3NjY1MDU5ODQsImlhdCI6MTc2NjUwMjM4NCwidHlwZSI6ImFjY2VzcyJ9.vFogj9SswI4W8D_wWw9W9huJt8bYe6NpcawNdP2bqJ8\",\"refresh_token\":\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxZGZmNzhiMi0yYjJhLTRiNmUtODMzMS05YzlmM2ZjMDZiOTEiLCJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE3NjcxMDcxODQsImlhdCI6MTc2NjUwMjM4NCwidHlwZSI6InJlZnJlc2gifQ.zcqQWwQqCAvBiGYgXGW9QDQvBhE7tuMxdv84FCky-FQ\",\"token_type\":\"bearer\",\"expires_in\":3600,\"user\":{\"id\":\"1dff78b2-2b2a-4b6e-8331-9c9f3fc06b91\",\"username\":\"admin\",\"role\":\"administrator\",\"created_at\":\"2025-12-09T16:12:34.805605\",\"updated_at\":\"2025-12-09T16:12:34.805605\"}}",
"timestamp": "2025-12-23T15:06:24.321Z"
},
{
"type": "request",
"method": "GET",
"url": "http://100.81.138.77:8000/api/v1/configuration/action-mappings",
"headers": {
"authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxZGZmNzhiMi0yYjJhLTRiNmUtODMzMS05YzlmM2ZjMDZiOTEiLCJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE3NjY1MDU5ODQsImlhdCI6MTc2NjUwMjM4NCwidHlwZSI6ImFjY2VzcyJ9.vFogj9SswI4W8D_wWw9W9huJt8bYe6NpcawNdP2bqJ8",
"referer": "http://100.81.138.77:8081/",
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
"accept": "application/json",
"content-type": "application/json"
},
"timestamp": "2025-12-23T15:06:34.731Z"
},
{
"type": "response",
"status": 200,
"url": "http://100.81.138.77:8000/api/v1/configuration/action-mappings",
"body": "{\"total_mappings\":67,\"mappings_with_parameters\":67,\"mappings\":[{\"name\":\"CrossSwitch C_101027 -> M\",\"input_actions\":[{\"action\":\"CrossSwitch C_101027 -> M\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"ViewerConnectLive\",\"parameters\":{\"Caption\":\"GSC ViewerConnectLive V <- C\"}}],\"id\":1,\"offset\":0},{\"name\":\"Warning: demo mode for 100 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 100 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 100 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 100 min\"}}],\"id\":2,\"offset\":0},{\"name\":\"Warning: demo mode for 90 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 90 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 90 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 90 min\"}}],\"id\":3,\"offset\":0},{\"name\":\"Warning: demo mode for 80 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 80 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 80 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 80 min\"}}],\"id\":4,\"offset\":0},{\"name\":\"Warning: demo mode for 70 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 70 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 70 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 70 min\"}}],\"id\":5,\"offset\":0},{\"name\":\"Warning: demo mode for 60 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 60 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 60 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 60 min\"}}],\"id\":6,\"offset\":0},{\"name\":\"Warning: demo mode for 50 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 50 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 50 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 50 min\"}}],\"id\":7,\"offset\":0},{\"name\":\"Warning: demo mode for 40 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 40 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 40 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 40 min\"}}],\"id\":8,\"offset\":0},{\"name\":\"Warning: demo mode for 30 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 30 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 30 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 30 min\"}}],\"id\":9,\"offset\":0},{\"name\":\"Warning: demo mode for 20 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 20 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 20 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 20 min\"}}],\"id\":10,\"offset\":0},{\"name\":\"Warning: demo mode for 10 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 10 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 10 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 10 min\"}}],\"id\":11,\"offset\":0},{\"name\":\"ClearVideoOutput M\",\"input_actions\":[{\"action\":\"ClearVideoOutput M\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"ViewerClear\",\"parameters\":{\"Caption\":\"GSC ViewerClear V\"}},{\"action\":\"ViewerClear\",\"parameters\":{\"Caption\":\"GNG ViewerClear V\"}}],\"id\":12,\"offset\":0},{\"name\":\"Warning: re_porter mode\",\"input_actions\":[{\"action\":\"Warning: re_porter mode\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemInfo\",\"parameters\":{\"Caption\":\"GSC info: re_porter mode active\",\"Source\":\"5\",\"Message\":\"20\",\"Description\":\"GeViSoft Server: re_porter mode active\"}},{\"action\":\"SystemInfo\",\"parameters\":{\"Caption\":\"GNG info: re_porter mode active\",\"Source\":\"5\",\"Message\":\"20\",\"Description\":\"GeViSoft Server: re_porter mode active\"}}],\"id\":13,\"offset\":0},{\"name\":\"GeViIO: start of interface failed\",\"input_actions\":[{\"action\":\"GeViIO: start of interface failed\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GSC error: \\\"GeViIO Client: start of interface failed\\\"\",\"Source\":\"5\",\"Message\":\"0\",\"Description\":\"GeViIO Client: start of interface failed\"}},{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GNG error: \\\"GeViIO Client: start of interface failed\\\"\",\"Source\":\"5\",\"Message\":\"0\",\"Description\":\"GeViIO Client: start of interface failed\"}}],\"id\":14,\"offset\":0},{\"name\":\"GeViIO warning\",\"input_actions\":[{\"action\":\"GeViIO warning\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: \\\"GeViSoft Server: client warning\\\"\",\"Source\":\"5\",\"Message\":\"3\",\"Description\":\"GeViSoft Server: client warning\"}},{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GNG warning: \\\"GeViSoft Server: client warning\\\"\",\"Source\":\"5\",\"Message\":\"3\",\"Description\":\"GeViSoft Server: client warning\"}}],\"id\":15,\"offset\":0},{\"name\":\"GeViIO: interface lost\",\"input_actions\":[{\"action\":\"GeViIO: interface lost\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GSC error: \\\"GeViIO Client: interface lost\\\"\",\"Source\":\"5\",\"Message\":\"0\",\"Description\":\"GeViIO Client: interface lost\"}},{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GNG error: \\\"GeViIO Client: interface lost\\\"\",\"Source\":\"5\",\"Message\":\"0\",\"Description\":\"GeViIO Client: interface lost\"}}],\"id\":16,\"offset\":0},{\"name\":\"InputContact 1 True\",\"input_actions\":[{\"action\":\"InputContact 1 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (1,close)\",\"Contact\":\"1\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (1,close)\",\"Contact\":\"1\",\"State\":\"1\"}}],\"id\":17,\"offset\":0},{\"name\":\"InputContact 2 True\",\"input_actions\":[{\"action\":\"InputContact 2 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (2,close)\",\"Contact\":\"2\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (2,close)\",\"Contact\":\"2\",\"State\":\"1\"}}],\"id\":18,\"offset\":0},{\"name\":\"InputContact 3 True\",\"input_actions\":[{\"action\":\"InputContact 3 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (3,close)\",\"Contact\":\"3\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (3,close)\",\"Contact\":\"3\",\"State\":\"1\"}}],\"id\":19,\"offset\":0},{\"name\":\"InputContact 4 True\",\"input_actions\":[{\"action\":\"InputContact 4 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (4,close)\",\"Contact\":\"4\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (4,close)\",\"Contact\":\"4\",\"State\":\"1\"}}],\"id\":20,\"offset\":0},{\"name\":\"InputContact 5 True\",\"input_actions\":[{\"action\":\"InputContact 5 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (5,close)\",\"Contact\":\"5\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (5,close)\",\"Contact\":\"5\",\"State\":\"1\"}}],\"id\":21,\"offset\":0},{\"name\":\"InputContact 6 True\",\"input_actions\":[{\"action\":\"InputContact 6 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (6,close)\",\"Contact\":\"6\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (6,close)\",\"Contact\":\"6\",\"State\":\"1\"}}],\"id\":22,\"offset\":0},{\"name\":\"Info: licence satisfied\",\"input_actions\":[{\"action\":\"Info: licence satisfied\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemInfo\",\"parameters\":{\"Caption\":\"GSC info: licence satisfied\"}},{\"action\":\"SystemInfo\",\"parameters\":{\"Caption\":\"GNG info: licence satisfied\"}}],\"id\":23,\"offset\":0},{\"name\":\"InputContact 7 True\",\"input_actions\":[{\"action\":\"InputContact 7 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (7,close)\",\"Contact\":\"7\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (7,close)\",\"Contact\":\"7\",\"State\":\"1\"}}],\"id\":24,\"offset\":0},{\"name\":\"InputContact 8 True\",\"input_actions\":[{\"action\":\"InputContact 8 True\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (8,close)\",\"Contact\":\"8\",\"State\":\"1\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (8,close)\",\"Contact\":\"8\",\"State\":\"1\"}}],\"id\":25,\"offset\":0},{\"name\":\"InputContact 1 False\",\"input_actions\":[{\"action\":\"InputContact 1 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (1,open)\",\"Contact\":\"1\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (1,open)\",\"Contact\":\"1\",\"State\":\"0\"}}],\"id\":26,\"offset\":0},{\"name\":\"InputContact 2 False\",\"input_actions\":[{\"action\":\"InputContact 2 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (2,open)\",\"Contact\":\"2\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (2,open)\",\"Contact\":\"2\",\"State\":\"0\"}}],\"id\":27,\"offset\":0},{\"name\":\"InputContact 3 False\",\"input_actions\":[{\"action\":\"InputContact 3 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (3,open)\",\"Contact\":\"3\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (3,open)\",\"Contact\":\"3\",\"State\":\"0\"}}],\"id\":28,\"offset\":0},{\"name\":\"InputContact 4 False\",\"input_actions\":[{\"action\":\"InputContact 4 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (4,open)\",\"Contact\":\"4\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (4,open)\",\"Contact\":\"4\",\"State\":\"0\"}}],\"id\":29,\"offset\":0},{\"name\":\"InputContact 5 False\",\"input_actions\":[{\"action\":\"InputContact 5 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (5,open)\",\"Contact\":\"5\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (5,open)\",\"Contact\":\"5\",\"State\":\"0\"}}],\"id\":30,\"offset\":0},{\"name\":\"InputContact 6 False\",\"input_actions\":[{\"action\":\"InputContact 6 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (6,open)\",\"Contact\":\"6\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (6,open)\",\"Contact\":\"6\",\"State\":\"0\"}}],\"id\":31,\"offset\":0},{\"name\":\"InputContact 7 False\",\"input_actions\":[{\"action\":\"InputContact 7 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (7,open)\",\"Contact\":\"7\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (7,open)\",\"Contact\":\"7\",\"State\":\"0\"}}],\"id\":32,\"offset\":0},{\"name\":\"InputContact 8 False\",\"input_actions\":[{\"action\":\"InputContact 8 False\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (8,open)\",\"Contact\":\"8\",\"State\":\"0\"}},{\"action\":\"SetDigitalOutput\",\"parameters\":{\"Caption\":\"Set digital output (8,open)\",\"Contact\":\"8\",\"State\":\"0\"}}],\"id\":33,\"offset\":0},{\"name\":\"GeViServer: license conditions are not satisfied\",\"input_actions\":[{\"action\":\"GeViServer: license conditions are not satisfied\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GSC error: \\\"GeViSoft Server: license conditions are not satisfied\\\"\",\"Source\":\"7\",\"Message\":\"23\",\"Description\":\"GeViSoft Server: license conditions are not satisfied\"}},{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GNG error: \\\"GeViSoft Server: license conditions are not satisfied\\\"\",\"Source\":\"7\",\"Message\":\"23\",\"Description\":\"GeViSoft Server: license conditions are not satisfied\"}}],\"id\":34,\"offset\":0},{\"name\":\"GscDiagnostics still running.\",\"input_actions\":[{\"action\":\"GscDiagnostics still running.\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"CustomAction\",\"parameters\":{\"Caption\":\"GscCustomAction:GscDiagnostics still running.\",\"Int\":\"0\",\"String\":\"GscDiagnostics still running.\"}},{\"action\":\"CustomAction\",\"parameters\":{\"Caption\":\"GNGCustomAction:GscDiagnostics still running.\",\"Int\":\"0\",\"String\":\"G-Diagnostics still running.\"}}],\"id\":35,\"offset\":0},{\"name\":\"GeVi PanLeft_101027\",\"input_actions\":[{\"action\":\"GeVi PanLeft_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PanLeft\",\"parameters\":{\"Caption\":\"GSC PanLeft\"}},{\"action\":\"PanLeft\",\"parameters\":{\"Caption\":\"GNG PanLeft_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":36,\"offset\":0},{\"name\":\"1-Based Indexing Test\",\"input_actions\":[{\"action\":\"1-Based Indexing Test\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PanRight\",\"parameters\":{\"Caption\":\"Pan Camera Right\",\"PTZ head\":\"101027\",\"GCoreServer\":\"G-Core\"}}],\"id\":37,\"offset\":0},{\"name\":\"GeVi PanStop_101027\",\"input_actions\":[{\"action\":\"GeVi PanStop_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PanStop\",\"parameters\":{\"Caption\":\"GSC PanStop\"}},{\"action\":\"PanStop\",\"parameters\":{\"Caption\":\"GNG PanStop_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":38,\"offset\":0},{\"name\":\"GeVi TiltDown_101027\",\"input_actions\":[{\"action\":\"GeVi TiltDown_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"TiltDown\",\"parameters\":{\"Caption\":\"GSC TiltDown\"}},{\"action\":\"TiltDown\",\"parameters\":{\"Caption\":\"GNG TiltDown_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":39,\"offset\":0},{\"name\":\"GeVi TiltUp_101027\",\"input_actions\":[{\"action\":\"GeVi TiltUp_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"TiltUp\",\"parameters\":{\"Caption\":\"GSC TiltUp\"}},{\"action\":\"TiltUp\",\"parameters\":{\"Caption\":\"GNG TiltUp_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":40,\"offset\":0},{\"name\":\"GeVi TiltStop_101027\",\"input_actions\":[{\"action\":\"GeVi TiltStop_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"TiltStop\",\"parameters\":{\"Caption\":\"GSC TiltStop\"}},{\"action\":\"TiltStop\",\"parameters\":{\"Caption\":\"GNG TiltStop_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":41,\"offset\":0},{\"name\":\"GeVi ZoomIn_101027\",\"input_actions\":[{\"action\":\"GeVi ZoomIn_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"ZoomIn\",\"parameters\":{\"Caption\":\"Gsc ZoomIn\"}},{\"action\":\"ZoomIn\",\"parameters\":{\"Caption\":\"GNG ZoomIn_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":42,\"offset\":0},{\"name\":\"GeVi ZoomOut_101027\",\"input_actions\":[{\"action\":\"GeVi ZoomOut_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"ZoomOut\",\"parameters\":{\"Caption\":\"Gsc ZoomOut\"}},{\"action\":\"ZoomOut\",\"parameters\":{\"Caption\":\"GNG ZoomOut_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":43,\"offset\":0},{\"name\":\"GeVi ZoomStop_101027\",\"input_actions\":[{\"action\":\"GeVi ZoomStop_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"ZoomStop\",\"parameters\":{\"Caption\":\"Gsc ZoomStop\"}},{\"action\":\"ZoomStop\",\"parameters\":{\"Caption\":\"GNG ZoomStop_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":44,\"offset\":0},{\"name\":\"GeViServer: dongle DLLs not found\",\"input_actions\":[{\"action\":\"GeViServer: dongle DLLs not found\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GSC error: \\\"GeViSoft Server: dongle DLLs not found\\\"\",\"Source\":\"7\",\"Message\":\"21\",\"Description\":\"GeViSoft Server: dongle DLLs not found\"}},{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GNG error: \\\"GeViSoft Server: dongle DLLs not found\\\"\",\"Source\":\"7\",\"Message\":\"21\",\"Description\":\"GeViSoft Server: dongle DLLs not found\"}}],\"id\":45,\"offset\":0},{\"name\":\"GeVi FocusFar 0_C101027\",\"input_actions\":[{\"action\":\"GeVi FocusFar 0_C101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"FocusFar\",\"parameters\":{\"Caption\":\"Gsc FocusFar 128\",\"Speed\":\"128\"}},{\"action\":\"FocusFar\",\"parameters\":{\"Caption\":\"GNG FocusFar 128_C101027\",\"PTZ head\":\"101027\",\"Speed\":\"128\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":46,\"offset\":0},{\"name\":\"GeVi FocusNear 0_C101027\",\"input_actions\":[{\"action\":\"GeVi FocusNear 0_C101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"FocusNear\",\"parameters\":{\"Caption\":\"Gsc FocusNear 128\",\"Speed\":\"128\"}},{\"action\":\"FocusNear\",\"parameters\":{\"Caption\":\"GNG FocusNear 128_C101027\",\"PTZ head\":\"101027\",\"Speed\":\"128\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":47,\"offset\":0},{\"name\":\"GeVi FocusStop_101027\",\"input_actions\":[{\"action\":\"GeVi FocusStop_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"FocusStop\",\"parameters\":{\"Caption\":\"Gsc FocusStop\"}},{\"action\":\"FocusStop\",\"parameters\":{\"Caption\":\"GNG FocusStop_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":48,\"offset\":0},{\"name\":\"GeVi DefaultPosCallUp_101027\",\"input_actions\":[{\"action\":\"GeVi DefaultPosCallUp_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"DefaultPosCallUp\",\"parameters\":{\"Caption\":\"Gsc MoveToDefaultPostion\"}},{\"action\":\"DefaultPosCallUp\",\"parameters\":{\"Caption\":\"GNG MoveToDefaultPostion_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":49,\"offset\":0},{\"name\":\"GeVi DefaultPosClear_101027\",\"input_actions\":[{\"action\":\"GeVi DefaultPosClear_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"DefaultPosClear\",\"parameters\":{\"Caption\":\"Gsc ClearDefaultPostion\"}},{\"action\":\"DefaultPosClear\",\"parameters\":{\"Caption\":\"GNG ClearDefaultPostion_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":50,\"offset\":0},{\"name\":\"GeVi DefaultPosSave_101027\",\"input_actions\":[{\"action\":\"GeVi DefaultPosSave_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"DefaultPosSave\",\"parameters\":{\"Caption\":\"Gsc SaveDafaultPostion\"}},{\"action\":\"DefaultPosSave\",\"parameters\":{\"Caption\":\"GNG SaveDafaultPostion_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":51,\"offset\":0},{\"name\":\"GeVi PrePosCallUp\",\"input_actions\":[{\"action\":\"GeVi PrePosCallUp\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PrePosCallUp\",\"parameters\":{\"Caption\":\"Gsc MoveToPresentPostion\"}},{\"action\":\"PrePosCallUp\",\"parameters\":{\"Caption\":\"GNG MoveToPresentPostion\"}}],\"id\":52,\"offset\":0},{\"name\":\"GeVi PrePosClear\",\"input_actions\":[{\"action\":\"GeVi PrePosClear\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PrePosClear\",\"parameters\":{\"Caption\":\"Gsc ClearPresentPostion\"}},{\"action\":\"PrePosClear\",\"parameters\":{\"Caption\":\"GNG ClearPresentPostion\"}}],\"id\":53,\"offset\":0},{\"name\":\"GeVi PrePosSave\",\"input_actions\":[{\"action\":\"GeVi PrePosSave\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PrePosSave\",\"parameters\":{\"Caption\":\"Gsc SavePresentPostion\"}},{\"action\":\"PrePosSave\",\"parameters\":{\"Caption\":\"GNG SavePresentPostion\"}}],\"id\":54,\"offset\":0},{\"name\":\"GeVi IrisClose_101027\",\"input_actions\":[{\"action\":\"GeVi IrisClose_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"IrisClose\",\"parameters\":{\"Caption\":\"Gsc IrisClose\"}},{\"action\":\"IrisClose\",\"parameters\":{\"Caption\":\"GNG IrisClose_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":55,\"offset\":0},{\"name\":\"GeViServer: dongle not found\",\"input_actions\":[{\"action\":\"GeViServer: dongle not found\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GSC error: \\\"GeViSoft Server: dongle not found\\\"\",\"Source\":\"7\",\"Message\":\"21\",\"Description\":\"GeViSoft Server: dongle not found\"}},{\"action\":\"SystemError\",\"parameters\":{\"Caption\":\"GNG error: \\\"GeViSoft Server: dongle not found\\\"\",\"Source\":\"7\",\"Message\":\"21\",\"Description\":\"GeViSoft Server: dongle not found\"}}],\"id\":56,\"offset\":0},{\"name\":\"GeVi IrisOpen_101027\",\"input_actions\":[{\"action\":\"GeVi IrisOpen_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"IrisOpen\",\"parameters\":{\"Caption\":\"Gsc IrisOpen\"}},{\"action\":\"IrisOpen\",\"parameters\":{\"Caption\":\"GNG IrisOpen_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":57,\"offset\":0},{\"name\":\"GeVi IrisStop_101027\",\"input_actions\":[{\"action\":\"GeVi IrisStop_101027\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"IrisStop\",\"parameters\":{\"Caption\":\"Gsc IrisStop\"}},{\"action\":\"IrisStop\",\"parameters\":{\"Caption\":\"GNG IrisStop_101027\",\"PTZ head\":\"101027\",\"GCoreServer\":\"gscope-cdu-3\"}}],\"id\":58,\"offset\":0},{\"name\":\"CrossSwitchwithAlarm\",\"input_actions\":[{\"action\":\"CrossSwitchwithAlarm\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"ViewerConnectLive\",\"parameters\":{\"Caption\":\"VC live\"}},{\"action\":\"ViewerConnectLive\",\"parameters\":{\"Caption\":\"GNG VC live\"}}],\"id\":59,\"offset\":0},{\"name\":\"GSC ViewerConnected OpCon -> Matrix\",\"input_actions\":[{\"action\":\"GSC ViewerConnected OpCon -> Matrix\",\"parameters\":{\"GscAction\":\"@ ViewerConnected ()\"}}],\"output_actions\":[{\"action\":\"CrossSwitch OpCon -> Matrix\",\"parameters\":{\"Caption\":\"CrossSwitch OpCon -> Matrix\",\"SwitchMode\":\"3\",\"VideoInput\":\"0\",\"VideoOutput\":\"0\"}}],\"id\":60,\"offset\":0},{\"name\":\"GNG ViewerConnected OpCon -> Matrix\",\"input_actions\":[{\"action\":\"GNG ViewerConnected OpCon -> Matrix\",\"parameters\":{\"GCoreAction\":\"@ ViewerConnected (Comment: \\\"\\\")\"}}],\"output_actions\":[{\"action\":\"CrossSwitch OpCon -> Matrix\",\"parameters\":{\"Caption\":\"CrossSwitch OpCon -> Matrix\",\"SwitchMode\":\"3\",\"VideoInput\":\"0\",\"VideoOutput\":\"0\"}}],\"id\":61,\"offset\":0},{\"name\":\"Test Create Mapping\",\"input_actions\":[{\"action\":\"Test Create Mapping\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"TiltUp\",\"parameters\":{\"Caption\":\"Tilt Camera Up\",\"PTZ head\":\"101028\",\"GCoreServer\":\"gscope-cdu-3\",\"Speed\":\"255\"}}],\"id\":62,\"offset\":0},{\"name\":\"Test GeViSet Visibility\",\"input_actions\":[{\"action\":\"Test GeViSet Visibility\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PanLeft\",\"parameters\":{\"Caption\":\"Pan Camera Left\",\"PTZ head\":\"101027\",\"GCoreServer\":\"G-Core\"}}],\"id\":63,\"offset\":0},{\"name\":\"FRESH TEST MAPPING\",\"input_actions\":[{\"action\":\"FRESH TEST MAPPING\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"PanLeft\",\"parameters\":{\"Caption\":\"TEST Pan Left\",\"PTZ head\":\"101027\",\"GCoreServer\":\"G-Core\"}}],\"id\":64,\"offset\":0},{\"name\":\"Warning: demo mode finished\",\"input_actions\":[{\"action\":\"Warning: demo mode finished\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode finished\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode finished\"}},{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GNG warning: demo mode finished\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode finished\"}}],\"id\":65,\"offset\":0},{\"name\":\"Warning: demo mode for 120 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 120 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 120 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 120 min\"}}],\"id\":66,\"offset\":0},{\"name\":\"Warning: demo mode for 110 min\",\"input_actions\":[{\"action\":\"Warning: demo mode for 110 min\",\"parameters\":{}}],\"output_actions\":[{\"action\":\"SystemWarning\",\"parameters\":{\"Caption\":\"GSC warning: demo mode for 110 min\",\"Source\":\"5\",\"Message\":\"2\",\"Description\":\"GEVISOFT WARNING: demo mode granted for 110 min\"}}],\"id\":67,\"offset\":0}]}",
"timestamp": "2025-12-23T15:06:38.072Z"
}
],
"consoleLogs": [
{
"type": "warning",
"text": "Exception while loading service worker: Error: Service Worker API unavailable.\nThe current context is NOT secure.\nRead more: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts\n at y.loadServiceWorker (http://100.81.138.77:8081/flutter_bootstrap.js:3:99)\n at C.load (http://100.81.138.77:8081/flutter_bootstrap.js:3:3866)\n at http://100.81.138.77:8081/flutter_bootstrap.js:12:17",
"timestamp": "2025-12-23T15:06:06.243Z"
},
{
"type": "debug",
"text": "Injecting <script> tag. Using callback.",
"timestamp": "2025-12-23T15:06:06.247Z"
},
{
"type": "warning",
"text": "registerExtension() from dart:developer is only supported in build/run/test environments where the developer event method hooks have been set by package:dwds v11.1.0 or higher.",
"timestamp": "2025-12-23T15:06:10.694Z"
},
{
"type": "warning",
"text": "[GroupMarkerNotSet(crbug.com/242999)!:A8801900EC4B0000]Automatic fallback to software WebGL has been deprecated. Please use the --enable-unsafe-swiftshader (about:flags#enable-unsafe-swiftshader) flag to opt in to lower security guarantees for trusted content.",
"timestamp": "2025-12-23T15:06:12.279Z"
},
{
"type": "warning",
"text": "[GroupMarkerNotSet(crbug.com/242999)!:A8B01900EC4B0000]Automatic fallback to software WebGL has been deprecated. Please use the --enable-unsafe-swiftshader (about:flags#enable-unsafe-swiftshader) flag to opt in to lower security guarantees for trusted content.",
"timestamp": "2025-12-23T15:06:12.280Z"
},
{
"type": "warning",
"text": "[.WebGL-0x7aa408715b00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
"timestamp": "2025-12-23T15:06:12.280Z"
},
{
"type": "warning",
"text": "[.WebGL-0x7aa408715b00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
"timestamp": "2025-12-23T15:06:19.850Z"
},
{
"type": "warning",
"text": "[.WebGL-0x7aa408715b00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels",
"timestamp": "2025-12-23T15:06:19.850Z"
},
{
"type": "warning",
"text": "[.WebGL-0x7aa408715b00]GL Driver Message (OpenGL, Performance, GL_CLOSE_PATH_NV, High): GPU stall due to ReadPixels (this message will no longer repeat)",
"timestamp": "2025-12-23T15:06:19.898Z"
},
{
"type": "verbose",
"text": "[DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o",
"timestamp": "2025-12-23T15:06:21.401Z"
},
{
"type": "log",
"text": "🔵 REQUEST[POST] => http://100.81.138.77:8000/api/v1/auth/login",
"timestamp": "2025-12-23T15:06:23.857Z"
},
{
"type": "log",
"text": "Headers: {Content-Type: application/json, Accept: application/json}",
"timestamp": "2025-12-23T15:06:23.857Z"
},
{
"type": "log",
"text": "Body: {username: admin, password: admin123}",
"timestamp": "2025-12-23T15:06:23.857Z"
},
{
"type": "log",
"text": "🟢 RESPONSE[200] => http://100.81.138.77:8000/api/v1/auth/login",
"timestamp": "2025-12-23T15:06:24.374Z"
},
{
"type": "log",
"text": "Data: {access_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxZGZmNzhiMi0yYjJhLTRiNmUtODMzMS05YzlmM2ZjMDZiOTEiLCJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE3NjY1MDU5ODQsImlhdCI6MTc2NjUwMjM4NCwidHlwZSI6ImFjY2VzcyJ9.vFogj9SswI4W8D_wWw9W9huJt8bYe6NpcawNdP2bqJ8, refresh_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxZGZmNzhiMi0yYjJhLTRiNmUtODMzMS05YzlmM2ZjMDZiOTEiLCJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE3NjcxMDcxODQsImlhdCI6MTc2NjUwMjM4NCwidHlwZSI6InJlZnJlc2gifQ.zcqQWwQqCAvBiGYgXGW9QDQvBhE7tuMxdv84FCky-FQ, token_type: bearer, expires_in: 3600, user: {id: 1dff78b2-2b2a-4b6e-8331-9c9f3fc06b91, username: admin, role: administrator, created_at: 2025-12-09T16:12:34.805605, updated_at: 2025-12-09T16:12:34.805605}}",
"timestamp": "2025-12-23T15:06:24.374Z"
},
{
"type": "log",
"text": "Warning: Failed to save access token to secure storage (using memory): TypeError: Cannot read properties of undefined (reading 'generateKey')",
"timestamp": "2025-12-23T15:06:24.378Z"
},
{
"type": "log",
"text": "Warning: Failed to save refresh token to secure storage (using memory): TypeError: Cannot read properties of undefined (reading 'generateKey')",
"timestamp": "2025-12-23T15:06:24.380Z"
},
{
"type": "log",
"text": "Warning: Failed to save username to secure storage (using memory): TypeError: Cannot read properties of undefined (reading 'generateKey')",
"timestamp": "2025-12-23T15:06:24.381Z"
},
{
"type": "log",
"text": "Warning: Failed to save user role to secure storage (using memory): TypeError: Cannot read properties of undefined (reading 'generateKey')",
"timestamp": "2025-12-23T15:06:24.382Z"
},
{
"type": "log",
"text": "Got object store box in database action_mappings.",
"timestamp": "2025-12-23T15:06:29.679Z"
},
{
"type": "log",
"text": "🔵 REQUEST[GET] => http://100.81.138.77:8000/api/v1/configuration/action-mappings",
"timestamp": "2025-12-23T15:06:34.704Z"
},
{
"type": "log",
"text": "Headers: {Content-Type: application/json, Accept: application/json, Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxZGZmNzhiMi0yYjJhLTRiNmUtODMzMS05YzlmM2ZjMDZiOTEiLCJ1c2VybmFtZSI6ImFkbWluIiwicm9sZSI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE3NjY1MDU5ODQsImlhdCI6MTc2NjUwMjM4NCwidHlwZSI6ImFjY2VzcyJ9.vFogj9SswI4W8D_wWw9W9huJt8bYe6NpcawNdP2bqJ8}",
"timestamp": "2025-12-23T15:06:34.704Z"
},
{
"type": "debug",
"text": "dart.developer.log {message: sendTimeout cannot be used without a request body to send on Web, name: 🔔 Dio, level: 900, stackTrace: dart._StackTrace.new}",
"timestamp": "2025-12-23T15:06:34.729Z"
},
{
"type": "log",
"text": "🟢 RESPONSE[200] => http://100.81.138.77:8000/api/v1/configuration/action-mappings",
"timestamp": "2025-12-23T15:06:38.114Z"
},
{
"type": "log",
"text": "Data: {total_mappings: 67, mappings_with_parameters: 67, mappings: [{name: CrossSwitch C_101027 -> M, input_actions: [{action: CrossSwitch C_101027 -> M, parameters: {}}], output_actions: [{action: ViewerConnectLive, parameters: {Caption: GSC ViewerConnectLive V <- C}}], id: 1, offset: 0}, {name: Warning: demo mode for 100 min, input_actions: [{action: Warning: demo mode for 100 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 100 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 100 min}}], id: 2, offset: 0}, {name: Warning: demo mode for 90 min, input_actions: [{action: Warning: demo mode for 90 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 90 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 90 min}}], id: 3, offset: 0}, {name: Warning: demo mode for 80 min, input_actions: [{action: Warning: demo mode for 80 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 80 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 80 min}}], id: 4, offset: 0}, {name: Warning: demo mode for 70 min, input_actions: [{action: Warning: demo mode for 70 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 70 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 70 min}}], id: 5, offset: 0}, {name: Warning: demo mode for 60 min, input_actions: [{action: Warning: demo mode for 60 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 60 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 60 min}}], id: 6, offset: 0}, {name: Warning: demo mode for 50 min, input_actions: [{action: Warning: demo mode for 50 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 50 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 50 min}}], id: 7, offset: 0}, {name: Warning: demo mode for 40 min, input_actions: [{action: Warning: demo mode for 40 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 40 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 40 min}}], id: 8, offset: 0}, {name: Warning: demo mode for 30 min, input_actions: [{action: Warning: demo mode for 30 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 30 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 30 min}}], id: 9, offset: 0}, {name: Warning: demo mode for 20 min, input_actions: [{action: Warning: demo mode for 20 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 20 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 20 min}}], id: 10, offset: 0}, {name: Warning: demo mode for 10 min, input_actions: [{action: Warning: demo mode for 10 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 10 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 10 min}}], id: 11, offset: 0}, {name: ClearVideoOutput M, input_actions: [{action: ClearVideoOutput M, parameters: {}}], output_actions: [{action: ViewerClear, parameters: {Caption: GSC ViewerClear V}}, {action: ViewerClear, parameters: {Caption: GNG ViewerClear V}}], id: 12, offset: 0}, {name: Warning: re_porter mode, input_actions: [{action: Warning: re_porter mode, parameters: {}}], output_actions: [{action: SystemInfo, parameters: {Caption: GSC info: re_porter mode active, Source: 5, Message: 20, Description: GeViSoft Server: re_porter mode active}}, {action: SystemInfo, parameters: {Caption: GNG info: re_porter mode active, Source: 5, Message: 20, Description: GeViSoft Server: re_porter mode active}}], id: 13, offset: 0}, {name: GeViIO: start of interface failed, input_actions: [{action: GeViIO: start of interface failed, parameters: {}}], output_actions: [{action: SystemError, parameters: {Caption: GSC error: \"GeViIO Client: start of interface failed\", Source: 5, Message: 0, Description: GeViIO Client: start of interface failed}}, {action: SystemError, parameters: {Caption: GNG error: \"GeViIO Client: start of interface failed\", Source: 5, Message: 0, Description: GeViIO Client: start of interface failed}}], id: 14, offset: 0}, {name: GeViIO warning, input_actions: [{action: GeViIO warning, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: \"GeViSoft Server: client warning\", Source: 5, Message: 3, Description: GeViSoft Server: client warning}}, {action: SystemWarning, parameters: {Caption: GNG warning: \"GeViSoft Server: client warning\", Source: 5, Message: 3, Description: GeViSoft Server: client warning}}], id: 15, offset: 0}, {name: GeViIO: interface lost, input_actions: [{action: GeViIO: interface lost, parameters: {}}], output_actions: [{action: SystemError, parameters: {Caption: GSC error: \"GeViIO Client: interface lost\", Source: 5, Message: 0, Description: GeViIO Client: interface lost}}, {action: SystemError, parameters: {Caption: GNG error: \"GeViIO Client: interface lost\", Source: 5, Message: 0, Description: GeViIO Client: interface lost}}], id: 16, offset: 0}, {name: InputContact 1 True, input_actions: [{action: InputContact 1 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (1,close), Contact: 1, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (1,close), Contact: 1, State: 1}}], id: 17, offset: 0}, {name: InputContact 2 True, input_actions: [{action: InputContact 2 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (2,close), Contact: 2, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (2,close), Contact: 2, State: 1}}], id: 18, offset: 0}, {name: InputContact 3 True, input_actions: [{action: InputContact 3 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (3,close), Contact: 3, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (3,close), Contact: 3, State: 1}}], id: 19, offset: 0}, {name: InputContact 4 True, input_actions: [{action: InputContact 4 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (4,close), Contact: 4, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (4,close), Contact: 4, State: 1}}], id: 20, offset: 0}, {name: InputContact 5 True, input_actions: [{action: InputContact 5 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (5,close), Contact: 5, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (5,close), Contact: 5, State: 1}}], id: 21, offset: 0}, {name: InputContact 6 True, input_actions: [{action: InputContact 6 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (6,close), Contact: 6, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (6,close), Contact: 6, State: 1}}], id: 22, offset: 0}, {name: Info: licence satisfied, input_actions: [{action: Info: licence satisfied, parameters: {}}], output_actions: [{action: SystemInfo, parameters: {Caption: GSC info: licence satisfied}}, {action: SystemInfo, parameters: {Caption: GNG info: licence satisfied}}], id: 23, offset: 0}, {name: InputContact 7 True, input_actions: [{action: InputContact 7 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (7,close), Contact: 7, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (7,close), Contact: 7, State: 1}}], id: 24, offset: 0}, {name: InputContact 8 True, input_actions: [{action: InputContact 8 True, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (8,close), Contact: 8, State: 1}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (8,close), Contact: 8, State: 1}}], id: 25, offset: 0}, {name: InputContact 1 False, input_actions: [{action: InputContact 1 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (1,open), Contact: 1, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (1,open), Contact: 1, State: 0}}], id: 26, offset: 0}, {name: InputContact 2 False, input_actions: [{action: InputContact 2 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (2,open), Contact: 2, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (2,open), Contact: 2, State: 0}}], id: 27, offset: 0}, {name: InputContact 3 False, input_actions: [{action: InputContact 3 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (3,open), Contact: 3, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (3,open), Contact: 3, State: 0}}], id: 28, offset: 0}, {name: InputContact 4 False, input_actions: [{action: InputContact 4 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (4,open), Contact: 4, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (4,open), Contact: 4, State: 0}}], id: 29, offset: 0}, {name: InputContact 5 False, input_actions: [{action: InputContact 5 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (5,open), Contact: 5, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (5,open), Contact: 5, State: 0}}], id: 30, offset: 0}, {name: InputContact 6 False, input_actions: [{action: InputContact 6 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (6,open), Contact: 6, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (6,open), Contact: 6, State: 0}}], id: 31, offset: 0}, {name: InputContact 7 False, input_actions: [{action: InputContact 7 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (7,open), Contact: 7, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (7,open), Contact: 7, State: 0}}], id: 32, offset: 0}, {name: InputContact 8 False, input_actions: [{action: InputContact 8 False, parameters: {}}], output_actions: [{action: SetDigitalOutput, parameters: {Caption: Set digital output (8,open), Contact: 8, State: 0}}, {action: SetDigitalOutput, parameters: {Caption: Set digital output (8,open), Contact: 8, State: 0}}], id: 33, offset: 0}, {name: GeViServer: license conditions are not satisfied, input_actions: [{action: GeViServer: license conditions are not satisfied, parameters: {}}], output_actions: [{action: SystemError, parameters: {Caption: GSC error: \"GeViSoft Server: license conditions are not satisfied\", Source: 7, Message: 23, Description: GeViSoft Server: license conditions are not satisfied}}, {action: SystemError, parameters: {Caption: GNG error: \"GeViSoft Server: license conditions are not satisfied\", Source: 7, Message: 23, Description: GeViSoft Server: license conditions are not satisfied}}], id: 34, offset: 0}, {name: GscDiagnostics still running., input_actions: [{action: GscDiagnostics still running., parameters: {}}], output_actions: [{action: CustomAction, parameters: {Caption: GscCustomAction:GscDiagnostics still running., Int: 0, String: GscDiagnostics still running.}}, {action: CustomAction, parameters: {Caption: GNGCustomAction:GscDiagnostics still running., Int: 0, String: G-Diagnostics still running.}}], id: 35, offset: 0}, {name: GeVi PanLeft_101027, input_actions: [{action: GeVi PanLeft_101027, parameters: {}}], output_actions: [{action: PanLeft, parameters: {Caption: GSC PanLeft}}, {action: PanLeft, parameters: {Caption: GNG PanLeft_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 36, offset: 0}, {name: 1-Based Indexing Test, input_actions: [{action: 1-Based Indexing Test, parameters: {}}], output_actions: [{action: PanRight, parameters: {Caption: Pan Camera Right, PTZ head: 101027, GCoreServer: G-Core}}], id: 37, offset: 0}, {name: GeVi PanStop_101027, input_actions: [{action: GeVi PanStop_101027, parameters: {}}], output_actions: [{action: PanStop, parameters: {Caption: GSC PanStop}}, {action: PanStop, parameters: {Caption: GNG PanStop_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 38, offset: 0}, {name: GeVi TiltDown_101027, input_actions: [{action: GeVi TiltDown_101027, parameters: {}}], output_actions: [{action: TiltDown, parameters: {Caption: GSC TiltDown}}, {action: TiltDown, parameters: {Caption: GNG TiltDown_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 39, offset: 0}, {name: GeVi TiltUp_101027, input_actions: [{action: GeVi TiltUp_101027, parameters: {}}], output_actions: [{action: TiltUp, parameters: {Caption: GSC TiltUp}}, {action: TiltUp, parameters: {Caption: GNG TiltUp_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 40, offset: 0}, {name: GeVi TiltStop_101027, input_actions: [{action: GeVi TiltStop_101027, parameters: {}}], output_actions: [{action: TiltStop, parameters: {Caption: GSC TiltStop}}, {action: TiltStop, parameters: {Caption: GNG TiltStop_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 41, offset: 0}, {name: GeVi ZoomIn_101027, input_actions: [{action: GeVi ZoomIn_101027, parameters: {}}], output_actions: [{action: ZoomIn, parameters: {Caption: Gsc ZoomIn}}, {action: ZoomIn, parameters: {Caption: GNG ZoomIn_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 42, offset: 0}, {name: GeVi ZoomOut_101027, input_actions: [{action: GeVi ZoomOut_101027, parameters: {}}], output_actions: [{action: ZoomOut, parameters: {Caption: Gsc ZoomOut}}, {action: ZoomOut, parameters: {Caption: GNG ZoomOut_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 43, offset: 0}, {name: GeVi ZoomStop_101027, input_actions: [{action: GeVi ZoomStop_101027, parameters: {}}], output_actions: [{action: ZoomStop, parameters: {Caption: Gsc ZoomStop}}, {action: ZoomStop, parameters: {Caption: GNG ZoomStop_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 44, offset: 0}, {name: GeViServer: dongle DLLs not found, input_actions: [{action: GeViServer: dongle DLLs not found, parameters: {}}], output_actions: [{action: SystemError, parameters: {Caption: GSC error: \"GeViSoft Server: dongle DLLs not found\", Source: 7, Message: 21, Description: GeViSoft Server: dongle DLLs not found}}, {action: SystemError, parameters: {Caption: GNG error: \"GeViSoft Server: dongle DLLs not found\", Source: 7, Message: 21, Description: GeViSoft Server: dongle DLLs not found}}], id: 45, offset: 0}, {name: GeVi FocusFar 0_C101027, input_actions: [{action: GeVi FocusFar 0_C101027, parameters: {}}], output_actions: [{action: FocusFar, parameters: {Caption: Gsc FocusFar 128, Speed: 128}}, {action: FocusFar, parameters: {Caption: GNG FocusFar 128_C101027, PTZ head: 101027, Speed: 128, GCoreServer: gscope-cdu-3}}], id: 46, offset: 0}, {name: GeVi FocusNear 0_C101027, input_actions: [{action: GeVi FocusNear 0_C101027, parameters: {}}], output_actions: [{action: FocusNear, parameters: {Caption: Gsc FocusNear 128, Speed: 128}}, {action: FocusNear, parameters: {Caption: GNG FocusNear 128_C101027, PTZ head: 101027, Speed: 128, GCoreServer: gscope-cdu-3}}], id: 47, offset: 0}, {name: GeVi FocusStop_101027, input_actions: [{action: GeVi FocusStop_101027, parameters: {}}], output_actions: [{action: FocusStop, parameters: {Caption: Gsc FocusStop}}, {action: FocusStop, parameters: {Caption: GNG FocusStop_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 48, offset: 0}, {name: GeVi DefaultPosCallUp_101027, input_actions: [{action: GeVi DefaultPosCallUp_101027, parameters: {}}], output_actions: [{action: DefaultPosCallUp, parameters: {Caption: Gsc MoveToDefaultPostion}}, {action: DefaultPosCallUp, parameters: {Caption: GNG MoveToDefaultPostion_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 49, offset: 0}, {name: GeVi DefaultPosClear_101027, input_actions: [{action: GeVi DefaultPosClear_101027, parameters: {}}], output_actions: [{action: DefaultPosClear, parameters: {Caption: Gsc ClearDefaultPostion}}, {action: DefaultPosClear, parameters: {Caption: GNG ClearDefaultPostion_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 50, offset: 0}, {name: GeVi DefaultPosSave_101027, input_actions: [{action: GeVi DefaultPosSave_101027, parameters: {}}], output_actions: [{action: DefaultPosSave, parameters: {Caption: Gsc SaveDafaultPostion}}, {action: DefaultPosSave, parameters: {Caption: GNG SaveDafaultPostion_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 51, offset: 0}, {name: GeVi PrePosCallUp, input_actions: [{action: GeVi PrePosCallUp, parameters: {}}], output_actions: [{action: PrePosCallUp, parameters: {Caption: Gsc MoveToPresentPostion}}, {action: PrePosCallUp, parameters: {Caption: GNG MoveToPresentPostion}}], id: 52, offset: 0}, {name: GeVi PrePosClear, input_actions: [{action: GeVi PrePosClear, parameters: {}}], output_actions: [{action: PrePosClear, parameters: {Caption: Gsc ClearPresentPostion}}, {action: PrePosClear, parameters: {Caption: GNG ClearPresentPostion}}], id: 53, offset: 0}, {name: GeVi PrePosSave, input_actions: [{action: GeVi PrePosSave, parameters: {}}], output_actions: [{action: PrePosSave, parameters: {Caption: Gsc SavePresentPostion}}, {action: PrePosSave, parameters: {Caption: GNG SavePresentPostion}}], id: 54, offset: 0}, {name: GeVi IrisClose_101027, input_actions: [{action: GeVi IrisClose_101027, parameters: {}}], output_actions: [{action: IrisClose, parameters: {Caption: Gsc IrisClose}}, {action: IrisClose, parameters: {Caption: GNG IrisClose_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 55, offset: 0}, {name: GeViServer: dongle not found, input_actions: [{action: GeViServer: dongle not found, parameters: {}}], output_actions: [{action: SystemError, parameters: {Caption: GSC error: \"GeViSoft Server: dongle not found\", Source: 7, Message: 21, Description: GeViSoft Server: dongle not found}}, {action: SystemError, parameters: {Caption: GNG error: \"GeViSoft Server: dongle not found\", Source: 7, Message: 21, Description: GeViSoft Server: dongle not found}}], id: 56, offset: 0}, {name: GeVi IrisOpen_101027, input_actions: [{action: GeVi IrisOpen_101027, parameters: {}}], output_actions: [{action: IrisOpen, parameters: {Caption: Gsc IrisOpen}}, {action: IrisOpen, parameters: {Caption: GNG IrisOpen_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 57, offset: 0}, {name: GeVi IrisStop_101027, input_actions: [{action: GeVi IrisStop_101027, parameters: {}}], output_actions: [{action: IrisStop, parameters: {Caption: Gsc IrisStop}}, {action: IrisStop, parameters: {Caption: GNG IrisStop_101027, PTZ head: 101027, GCoreServer: gscope-cdu-3}}], id: 58, offset: 0}, {name: CrossSwitchwithAlarm, input_actions: [{action: CrossSwitchwithAlarm, parameters: {}}], output_actions: [{action: ViewerConnectLive, parameters: {Caption: VC live}}, {action: ViewerConnectLive, parameters: {Caption: GNG VC live}}], id: 59, offset: 0}, {name: GSC ViewerConnected OpCon -> Matrix, input_actions: [{action: GSC ViewerConnected OpCon -> Matrix, parameters: {GscAction: @ ViewerConnected ()}}], output_actions: [{action: CrossSwitch OpCon -> Matrix, parameters: {Caption: CrossSwitch OpCon -> Matrix, SwitchMode: 3, VideoInput: 0, VideoOutput: 0}}], id: 60, offset: 0}, {name: GNG ViewerConnected OpCon -> Matrix, input_actions: [{action: GNG ViewerConnected OpCon -> Matrix, parameters: {GCoreAction: @ ViewerConnected (Comment: \"\")}}], output_actions: [{action: CrossSwitch OpCon -> Matrix, parameters: {Caption: CrossSwitch OpCon -> Matrix, SwitchMode: 3, VideoInput: 0, VideoOutput: 0}}], id: 61, offset: 0}, {name: Test Create Mapping, input_actions: [{action: Test Create Mapping, parameters: {}}], output_actions: [{action: TiltUp, parameters: {Caption: Tilt Camera Up, PTZ head: 101028, GCoreServer: gscope-cdu-3, Speed: 255}}], id: 62, offset: 0}, {name: Test GeViSet Visibility, input_actions: [{action: Test GeViSet Visibility, parameters: {}}], output_actions: [{action: PanLeft, parameters: {Caption: Pan Camera Left, PTZ head: 101027, GCoreServer: G-Core}}], id: 63, offset: 0}, {name: FRESH TEST MAPPING, input_actions: [{action: FRESH TEST MAPPING, parameters: {}}], output_actions: [{action: PanLeft, parameters: {Caption: TEST Pan Left, PTZ head: 101027, GCoreServer: G-Core}}], id: 64, offset: 0}, {name: Warning: demo mode finished, input_actions: [{action: Warning: demo mode finished, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode finished, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode finished}}, {action: SystemWarning, parameters: {Caption: GNG warning: demo mode finished, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode finished}}], id: 65, offset: 0}, {name: Warning: demo mode for 120 min, input_actions: [{action: Warning: demo mode for 120 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 120 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 120 min}}], id: 66, offset: 0}, {name: Warning: demo mode for 110 min, input_actions: [{action: Warning: demo mode for 110 min, parameters: {}}], output_actions: [{action: SystemWarning, parameters: {Caption: GSC warning: demo mode for 110 min, Source: 5, Message: 2, Description: GEVISOFT WARNING: demo mode granted for 110 min}}], id: 67, offset: 0}]}",
"timestamp": "2025-12-23T15:06:38.118Z"
}
]
}