### Building and Installing EvaPanel Source: https://context7.com/eva-ics/evapanel/llms.txt Commands for building EvaPanel for different platforms using 'just' and 'cargo', and instructions for installing runtime dependencies on Debian/Ubuntu systems. Includes examples for kiosk auto-login setup. ```bash # Build for Linux x86_64 just docker-image-x86_64 linux-x86_64 # Build for Linux ARM64 just docker-image-aarch64 linux-aarch64 # Build for Windows (native) cargo build --release # Install required runtime dependencies (Debian/Ubuntu) apt install -y libwebkit2gtk-4.1-0 # Kiosk auto-login setup - append to ~/.profile evapanel-launch.sh # ~/.xinitrc for X11 session i3 & evapanel # Run with custom config path evapanel -c /etc/evapanel/custom.yml ``` -------------------------------- ### Install WebKitGTK dependency on Debian/Ubuntu Source: https://github.com/eva-ics/evapanel/blob/main/README.md This command installs the necessary WebKitGTK library for EvaPanel on Debian-based Linux distributions. The minor version may vary depending on your system. ```shell apt install -y libwebkit2gtk-4.1-0 ``` -------------------------------- ### Build EvaPanel for Linux x86_64 using Docker Source: https://github.com/eva-ics/evapanel/blob/main/README.md This command builds a Docker image for EvaPanel targeting Linux x86_64 architecture. It assumes you have Rust and optionally the 'justfile' tool installed. ```shell just docker-image-x86_64 linux-x86_64 ``` -------------------------------- ### Build EvaPanel for Linux ARM64 using Docker Source: https://github.com/eva-ics/evapanel/blob/main/README.md This command builds a Docker image for EvaPanel targeting Linux ARM64 architecture. It assumes you have Rust and optionally the 'justfile' tool installed. ```shell just docker-image-aarch64 linux-aarch64 ``` -------------------------------- ### Remote Control: Get Info (Bash, Python) Source: https://context7.com/eva-ics/evapanel/llms.txt Retrieves current session information, including agent version, architecture, engine type, and current URL. The response is in MessagePack format, decodable to JSON. ```bash # Get panel info busrt-cli call eva.panel.HOSTNAME info ``` ```json # Response example (MessagePack decoded to JSON): { "agent": "EvaPanel", "arch": "x86_64", "current_url": "http://eva/ui/", "debug": true, "engine": "wasm", "home_url": "http://eva/ui/", "state": "active", "version": "0.3.0" } ``` ```python import busrt import msgpack async def get_panel_info(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) result = await rpc.call("eva.panel.myhostname", "info") info = msgpack.unpackb(result) print(f"State: {info['state']}, URL: {info['current_url']}") ``` -------------------------------- ### Control Evapanel Display Settings Source: https://context7.com/eva-ics/evapanel/llms.txt Manages the physical display's power state (on/off) and brightness level. This functionality is Linux-specific and requires 'xrandr' and 'xbacklight' to be installed. Control can be achieved through bash commands or Python scripts using the 'busrt' library. ```bash # Turn display off busrt-cli call eva.panel.HOSTNAME display '{"on":false}' # Turn display on busrt-cli call eva.panel.HOSTNAME display '{"on":true}' # Set brightness to 75% busrt-cli call eva.panel.HOSTNAME display '{"brightness":75.0}' # Combined: turn on and set brightness busrt-cli call eva.panel.HOSTNAME display '{"on":true,"brightness":80.0}' ``` ```python import busrt import msgpack async def control_display(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) # Dim display for night mode payload = msgpack.packb({"brightness": 30.0}) await rpc.call("eva.panel.myhostname", "display", payload) ``` -------------------------------- ### POST /eva.panel.myhostname/navigate Source: https://context7.com/eva-ics/evapanel/llms.txt Navigates the panel's browser to a specified URL or returns to the home URL. ```APIDOC ## POST /eva.panel.myhostname/navigate ### Description Navigates the browser view on the panel. You can specify a URL to load a new page, or call the endpoint without a URL to return to the default home page. ### Method POST ### Endpoint /eva.panel.myhostname/navigate ### Parameters #### Query Parameters None #### Request Body - **url** (string) - Optional - The URL to navigate to. If omitted, the panel navigates to its home URL. ### Request Example ```json { "url": "http://eva/ui/settings" } ``` ### Response #### Success Response (200) An empty response is returned upon successful navigation. #### Response Example ```json {} ``` ``` -------------------------------- ### Build EvaPanel for Windows Source: https://github.com/eva-ics/evapanel/blob/main/README.md This command builds a release version of EvaPanel for Windows using Cargo, Rust's package manager. Note that some functions may not work properly on Windows. ```shell cargo build --release ``` -------------------------------- ### POST /eva.panel.myhostname/reboot Source: https://context7.com/eva-ics/evapanel/llms.txt Reboots the entire kiosk machine. ```APIDOC ## POST /eva.panel.myhostname/reboot ### Description Executes the configured reboot command for the entire kiosk machine. Use this to restart the underlying operating system. ### Method POST ### Endpoint /eva.panel.myhostname/reboot ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```json {} ``` ### Response #### Success Response (200) An empty response is returned upon initiating the reboot. Note that the connection will likely be lost immediately after this command is sent. #### Response Example ```json {} ``` ``` -------------------------------- ### POST /eva.panel.myhostname/dev.open / POST /eva.panel.myhostname/dev.close Source: https://context7.com/eva-ics/evapanel/llms.txt Opens or closes the development console for debugging purposes. Requires debug mode to be enabled. ```APIDOC ## POST /eva.panel.myhostname/dev.open / POST /eva.panel.myhostname/dev.close ### Description These endpoints control the visibility of the browser's developer tools. `dev.open` will show the tools, and `dev.close` will hide them. This feature requires that debug mode is enabled in the EvaPanel configuration. ### Method POST ### Endpoint /eva.panel.myhostname/dev.open /eva.panel.myhostname/dev.close ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```json # To open dev tools {} # To close dev tools {} ``` ### Response #### Success Response (200) An empty response is returned upon successful execution. #### Response Example ```json {} ``` ``` -------------------------------- ### POST /eva.panel.myhostname/reload Source: https://context7.com/eva-ics/evapanel/llms.txt Reloads or restarts the entire kiosk browser process. ```APIDOC ## POST /eva.panel.myhostname/reload ### Description Initiates a full reload or restart of the kiosk browser application. This is useful for refreshing the application state or recovering from potential browser issues. ### Method POST ### Endpoint /eva.panel.myhostname/reload ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```json {} ``` ### Response #### Success Response (200) An empty response is returned upon initiating the reload. #### Response Example ```json {} ``` ``` -------------------------------- ### POST /eva.panel.myhostname/display Source: https://context7.com/eva-ics/evapanel/llms.txt Controls the physical display of the panel, including power state and brightness. This feature is Linux-specific. ```APIDOC ## POST /eva.panel.myhostname/display ### Description Manages the physical display of the EvaPanel. This endpoint allows you to turn the display on or off, and adjust its brightness level. Note: This functionality requires `xrandr` and `xbacklight` utilities and is only available on Linux systems. ### Method POST ### Endpoint /eva.panel.myhostname/display ### Parameters #### Query Parameters None #### Request Body - **on** (boolean) - Optional - Set to `true` to turn the display on, `false` to turn it off. - **brightness** (float) - Optional - Sets the display brightness level, ranging from 0.0 to 100.0. ### Request Example ```json { "on": true, "brightness": 80.0 } ``` ### Response #### Success Response (200) An empty response is returned upon successful display control. #### Response Example ```json {} ``` ``` -------------------------------- ### Navigate Evapanel Browser URL Source: https://context7.com/eva-ics/evapanel/llms.txt Controls the browser's navigation, allowing it to go to a specific URL or return to the home page. This can be done via bash commands or Python scripts using the 'busrt' library. An empty or missing URL payload defaults to the home page. ```bash # Navigate to specific URL busrt-cli call eva.panel.HOSTNAME navigate '{"url":"http://eva/ui/dashboard"}' # Navigate to home URL (no payload or empty url) busrt-cli call eva.panel.HOSTNAME navigate ``` ```python import busrt import msgpack async def navigate_panel(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) # Navigate to specific page payload = msgpack.packb({"url": "http://eva/ui/settings"}) await rpc.call("eva.panel.myhostname", "navigate", payload) # Navigate back to home await rpc.call("eva.panel.myhostname", "navigate") ``` -------------------------------- ### POST /eva.panel.myhostname/eval Source: https://context7.com/eva-ics/evapanel/llms.txt Executes JavaScript code within the panel's browser context. Useful for manipulating the UI or triggering client-side actions. ```APIDOC ## POST /eva.panel.myhostname/eval ### Description Executes arbitrary JavaScript code in the browser context of the panel. This can be used to update UI elements, trigger client-side events, or interact with JavaScript objects available in the page. ### Method POST ### Endpoint /eva.panel.myhostname/eval ### Parameters #### Query Parameters None #### Request Body - **code** (string) - Required - The JavaScript code to execute. ### Request Example ```json { "code": "document.getElementById('status').innerText = 'Connected'; $eva.hmi.display_alert('Remote connected', 'info', 5);" } ``` ### Response #### Success Response (200) An empty response is typically returned upon successful execution. #### Response Example ```json {} ``` ``` -------------------------------- ### Reboot Kiosk Machine Source: https://context7.com/eva-ics/evapanel/llms.txt Initiates a reboot of the entire kiosk machine by executing a pre-configured reboot command. This action can be triggered via bash or Python scripts using the 'busrt' library. Note that the connection will be lost after the reboot command is issued. ```bash # Reboot the kiosk machine busrt-cli call eva.panel.HOSTNAME reboot ``` ```python import busrt async def reboot_kiosk(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) await rpc.call("eva.panel.myhostname", "reboot") # Note: Connection will be lost after reboot initiates ``` -------------------------------- ### Remote Control: Login (Bash, Python) Source: https://context7.com/eva-ics/evapanel/llms.txt Performs user login on the HMI application using the `$eva.hmi.login()` JavaScript function. Supports MessagePack payload via BUS/RT client or Python `busrt` library. ```bash # Using BUS/RT client with MessagePack payload # Login command structure busrt-cli call eva.panel.HOSTNAME login '{"login":"admin","password":"secret123"}' ``` ```python import busrt import msgpack async def login_panel(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) payload = msgpack.packb({"login": "admin", "password": "secret123"}) await rpc.call("eva.panel.myhostname", "login", payload) ``` -------------------------------- ### EvaPanel Configuration (evapanel.yml) Source: https://context7.com/eva-ics/evapanel/llms.txt The main configuration file for EvaPanel, controlling aspects like home URL, allowed URLs, display settings, and bus communication mode. It uses YAML format. ```yaml # evapanel.yml - Main configuration file title: "EVA ICS Panel" home_url: http://eva/ui/ # Allow URLs list (URL and sub-urls), home url is automatically included # Use '*' to allow any URL allowed_urls: ['*'] zoom: 1 fullscreen: true # fullscreen mode window_size: [800, 500] # window size for non-fullscreen mode engine: wasm # wasm or js show_cursor: false # show cursor in web view debug: true # debug log, required for dev.open/dev.close # Bus configuration for remote control bus: mode: client # server (Linux only) or client path: /tmp/evapanel.sock # Alternative: IP:PORT for remote broker # path: 192.168.1.100:7791 # Alternative: WebSocket connection # path: ws://192.168.1.100:7792 # token: XXXX # Optional auth token for ws:// connections # Custom commands commands: reboot: sudo reboot ``` -------------------------------- ### POST /eva.panel.myhostname/zoom Source: https://context7.com/eva-ics/evapanel/llms.txt Adjusts the zoom level of the web page displayed in the panel's browser. ```APIDOC ## POST /eva.panel.myhostname/zoom ### Description Sets the zoom level for the web content displayed within the panel's browser. This allows you to scale the content to fit different viewing requirements. ### Method POST ### Endpoint /eva.panel.myhostname/zoom ### Parameters #### Query Parameters None #### Request Body - **level** (float) - Required - The zoom level to apply. `1.0` represents 100%, `1.5` represents 150%, etc. ### Request Example ```json { "level": 1.5 } ``` ### Response #### Success Response (200) An empty response is returned upon successful zoom level adjustment. #### Response Example ```json {} ``` ``` -------------------------------- ### Toggle Evapanel Developer Tools Source: https://context7.com/eva-ics/evapanel/llms.txt Opens or closes the development console for the Evapanel browser. This feature requires debug mode to be enabled in the Evapanel configuration. Both 'dev.open' and 'dev.close' commands can be executed via bash or Python scripts using the 'busrt' library. ```bash # Open developer tools busrt-cli call eva.panel.HOSTNAME dev.open # Close developer tools busrt-cli call eva.panel.HOSTNAME dev.close ``` ```python import busrt async def toggle_devtools(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) # Open dev tools for debugging await rpc.call("eva.panel.myhostname", "dev.open") # Close when done await rpc.call("eva.panel.myhostname", "dev.close") ``` -------------------------------- ### Reload Evapanel Browser Process Source: https://context7.com/eva-ics/evapanel/llms.txt Restarts the entire kiosk browser process. This is useful for applying updates or recovering from unexpected states. The reload command can be executed using bash or Python scripts with the 'busrt' library. ```bash # Reload the panel busrt-cli call eva.panel.HOSTNAME reload ``` ```python import busrt async def reload_panel(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) await rpc.call("eva.panel.myhostname", "reload") ``` -------------------------------- ### Remote Control: Display Alert (Bash, Python) Source: https://context7.com/eva-ics/evapanel/llms.txt Displays an alert notification on the HMI application with configurable text, level (info, warning, error), and timeout. Uses MessagePack payload for parameters. ```bash # Display info alert with 30 second timeout busrt-cli call eva.panel.HOSTNAME alert '{"text":"System maintenance in 5 minutes","level":"info","timeout":30}' # Display warning alert busrt-cli call eva.panel.HOSTNAME alert '{"text":"Temperature exceeds threshold!","level":"warning"}' ``` ```python import busrt import msgpack async def show_alert(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) payload = msgpack.packb({ "text": "Emergency shutdown initiated", "level": "warning", "timeout": 60 }) await rpc.call("eva.panel.myhostname", "alert", payload) ``` -------------------------------- ### Conditional WASM Support in HMI Apps Source: https://github.com/eva-ics/evapanel/blob/main/README.md This JavaScript code snippet demonstrates how an HMI application can conditionally enable WebAssembly support based on the kiosk's configuration and the user agent. It requires the EVA ICS WebEngine WebAssembly extension. ```javascript eva.wasm = config.wasm && (!window.navigator.userAgent.startsWith('EvaPanel ') || window.navigator.userAgent.search('/wasm ') > 0); ``` -------------------------------- ### Execute JavaScript on Evapanel Page Source: https://context7.com/eva-ics/evapanel/llms.txt Executes arbitrary JavaScript code within the Evapanel's browser context. This function allows dynamic updates to the page's DOM and can trigger alerts. It requires the 'busrt' and 'msgpack' libraries for communication and payload serialization. ```python import busrt import msgpack async def execute_js(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) js_code = """ document.getElementById('status').innerText = 'Connected'; $eva.hmi.display_alert('Remote connected', 'info', 5); """ payload = msgpack.packb({"code": js_code}) await rpc.call("eva.panel.myhostname", "eval", payload) ``` -------------------------------- ### EvaPanel Remote Control API - info Source: https://context7.com/eva-ics/evapanel/llms.txt Retrieves current session information from the EvaPanel, including agent details, architecture, rendering engine type, and the current URL being displayed. ```APIDOC ## GET /eva-ics/evapanel/info ### Description Get current session information including agent version, architecture, engine type, and current URL. ### Method GET (via BUS/RT client) ### Endpoint `eva.panel.HOSTNAME info` (command via busrt-cli) ### Parameters None ### Request Example ```bash busrt-cli call eva.panel.HOSTNAME info ``` ### Request Example (Python) ```python import busrt import msgpack async def get_panel_info(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) result = await rpc.call("eva.panel.myhostname", "info") info = msgpack.unpackb(result) print(f"State: {info['state']}, URL: {info['current_url']}") ``` ### Response #### Success Response (200) - **agent** (string) - The name of the agent (e.g., "EvaPanel"). - **arch** (string) - The system architecture (e.g., "x86_64"). - **current_url** (string) - The URL currently displayed in the browser. - **debug** (boolean) - Indicates if debug mode is enabled. - **engine** (string) - The rendering engine used (e.g., "wasm", "js"). - **home_url** (string) - The configured home URL. - **state** (string) - The current state of the panel (e.g., "active"). - **version** (string) - The version of EvaPanel. ### Response Example ```json { "agent": "EvaPanel", "arch": "x86_64", "current_url": "http://eva/ui/", "debug": true, "engine": "wasm", "home_url": "http://eva/ui/", "state": "active", "version": "0.3.0" } ``` ### Error Handling (Error handling details not provided in the source text) ``` -------------------------------- ### HMI App JavaScript Methods for Login/Logout Source: https://github.com/eva-ics/evapanel/blob/main/README.md These JavaScript methods must be implemented in your HMI application to allow EvaPanel to remotely log users in and out. They are part of the $eva.hmi interface. ```javascript $eva.hmi.login(user, password); $eva.hmi.logout(); ``` -------------------------------- ### EvaPanel Remote Control API - login Source: https://context7.com/eva-ics/evapanel/llms.txt Allows performing user login on the HMI application by calling the JavaScript $eva.hmi.login() function with provided credentials. Supports MessagePack payload via BUS/RT client. ```APIDOC ## POST /eva-ics/evapanel/login ### Description Perform user login on the HMI application by calling the JavaScript `$eva.hmi.login()` function with credentials. ### Method POST (via BUS/RT client) ### Endpoint `eva.panel.HOSTNAME login` (command via busrt-cli) ### Parameters #### Request Body - **login** (string) - Required - The username for login. - **password** (string) - Required - The password for login. ### Request Example ```bash busrt-cli call eva.panel.HOSTNAME login '{"login":"admin","password":"secret123"}' ``` ### Request Example (Python) ```python import busrt import msgpack async def login_panel(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) payload = msgpack.packb({"login": "admin", "password": "secret123"}) await rpc.call("eva.panel.myhostname", "login", payload) ``` ### Response (No specific success response detailed, assumes successful execution if no error is returned) ### Error Handling (Error handling details not provided in the source text) ``` -------------------------------- ### Remote Control: Evaluate JavaScript (Bash) Source: https://context7.com/eva-ics/evapanel/llms.txt Executes arbitrary JavaScript code within the web application's context. The JavaScript code is provided as a string in the payload. ```bash # Execute JavaScript code busrt-cli call eva.panel.HOSTNAME eval '{"code":"console.log(\"Hello from remote!\"); document.title=\"Updated Title\";"}' ``` -------------------------------- ### HMI App JavaScript Method for Displaying Alerts Source: https://github.com/eva-ics/evapanel/blob/main/README.md This JavaScript method allows your HMI application to display alerts through EvaPanel. It accepts text, a severity level (info or warning), and an optional timeout. ```javascript $eva.hmi.display_alert(text, level, timeout); ``` -------------------------------- ### Remote Control: Logout (Bash, Python) Source: https://context7.com/eva-ics/evapanel/llms.txt Performs user logout on the HMI application by calling the `$eva.hmi.logout()` JavaScript function. No payload is required for this command. ```bash # Logout command (no payload required) busrt-cli call eva.panel.HOSTNAME logout ``` ```python import busrt async def logout_panel(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) await rpc.call("eva.panel.myhostname", "logout") ``` -------------------------------- ### HMI JavaScript Integration for EvaPanel Source: https://context7.com/eva-ics/evapanel/llms.txt Implement these JavaScript functions in your web application to integrate with EvaPanel's remote control features. This includes handling login, logout, and displaying alerts. The `eva.wasm` variable is automatically detected based on the user agent. ```javascript // Required HMI integration functions that must be defined in your web application // Login handler - called when remote login command is received $eva.hmi.login = function(user, password) { // Implement your authentication logic fetch('/api/auth/login', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({username: user, password: password}) }).then(response => { if (response.ok) { $eva.api_token = 'authenticated'; window.location.reload(); } }); }; // Logout handler - called when remote logout command is received $eva.hmi.logout = function() { $eva.api_token = null; fetch('/api/auth/logout', {method: 'POST'}) .then(() => window.location.href = '/login'); }; // Alert display handler - called when remote alert command is received $eva.hmi.display_alert = function(text, level, timeout) { const alertDiv = document.createElement('div'); alertDiv.className = `alert alert-${level}`; alertDiv.textContent = text; document.body.appendChild(alertDiv); if (timeout) { setTimeout(() => alertDiv.remove(), timeout * 1000); } }; // Automatic WASM detection based on EvaPanel user agenteva.wasm = config.wasm && ( !window.navigator.userAgent.startsWith('EvaPanel ') || window.navigator.userAgent.search('/wasm ') > 0 ); ``` -------------------------------- ### EvaPanel Remote Control API - alert Source: https://context7.com/eva-ics/evapanel/llms.txt Displays an alert notification on the HMI application. Alerts can be configured with text, level (info, warning, error), and an optional timeout duration. ```APIDOC ## POST /eva-ics/evapanel/alert ### Description Display an alert notification on the HMI application with configurable level and timeout. ### Method POST (via BUS/RT client) ### Endpoint `eva.panel.HOSTNAME alert` (command via busrt-cli) ### Parameters #### Request Body - **text** (string) - Required - The message content of the alert. - **level** (string) - Optional - The severity level of the alert (e.g., "info", "warning", "error"). Defaults to "info" if not specified. - **timeout** (integer) - Optional - The duration in seconds before the alert automatically dismisses. If not specified, the alert may remain until manually dismissed. ### Request Example ```bash # Display info alert with 30 second timeout busrt-cli call eva.panel.HOSTNAME alert '{"text":"System maintenance in 5 minutes","level":"info","timeout":30}' # Display warning alert busrt-cli call eva.panel.HOSTNAME alert '{"text":"Temperature exceeds threshold!","level":"warning"}' ``` ### Request Example (Python) ```python import busrt import msgpack async def show_alert(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) payload = msgpack.packb({ "text": "Emergency shutdown initiated", "level": "warning", "timeout": 60 }) await rpc.call("eva.panel.myhostname", "alert", payload) ``` ### Response (No specific success response detailed, assumes successful execution if no error is returned) ### Error Handling (Error handling details not provided in the source text) ``` -------------------------------- ### EvaPanel Remote Control API - eval Source: https://context7.com/eva-ics/evapanel/llms.txt Executes arbitrary JavaScript code within the web application's context. This allows for dynamic manipulation of the HMI interface or triggering specific client-side actions. ```APIDOC ## POST /eva-ics/evapanel/eval ### Description Execute arbitrary JavaScript code inside the web application context. ### Method POST (via BUS/RT client) ### Endpoint `eva.panel.HOSTNAME eval` (command via busrt-cli) ### Parameters #### Request Body - **code** (string) - Required - The JavaScript code to execute. ### Request Example ```bash # Execute JavaScript code busrt-cli call eva.panel.HOSTNAME eval '{"code":"console.log(\"Hello from remote!\"); document.title=\"Updated Title\";"}' ``` ### Response (No specific success response detailed, assumes successful execution if no error is returned) ### Error Handling (Error handling details not provided in the source text) ``` -------------------------------- ### Set Evapanel Browser Zoom Level Source: https://context7.com/eva-ics/evapanel/llms.txt Adjusts the zoom level of the web page displayed in the Evapanel's browser. The zoom level is specified as a multiplier (e.g., 1.5 for 150%). This can be controlled via bash commands or Python scripts using the 'busrt' library. ```bash # Set zoom to 150% busrt-cli call eva.panel.HOSTNAME zoom '{"level":1.5}' # Set zoom to 100% busrt-cli call eva.panel.HOSTNAME zoom '{"level":1.0}' ``` ```python import busrt import msgpack async def set_zoom(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) payload = msgpack.packb({"level": 1.25}) await rpc.call("eva.panel.myhostname", "zoom", payload) ``` -------------------------------- ### EvaPanel Remote Control API - logout Source: https://context7.com/eva-ics/evapanel/llms.txt Enables user logout from the HMI application by invoking the JavaScript $eva.hmi.logout() function. No payload is required for this operation. ```APIDOC ## POST /eva-ics/evapanel/logout ### Description Perform user logout on the HMI application by calling the JavaScript `$eva.hmi.logout()` function. ### Method POST (via BUS/RT client) ### Endpoint `eva.panel.HOSTNAME logout` (command via busrt-cli) ### Parameters #### Request Body None ### Request Example ```bash busrt-cli call eva.panel.HOSTNAME logout ``` ### Request Example (Python) ```python import busrt async def logout_panel(): client = await busrt.ipc.Client.connect("/tmp/evapanel.sock", "controller") rpc = busrt.rpc.Rpc(client) await rpc.call("eva.panel.myhostname", "logout") ``` ### Response (No specific success response detailed, assumes successful execution if no error is returned) ### Error Handling (Error handling details not provided in the source text) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.