Logo

Contents

  • EVA ICS v4
    • What is new (CHANGELOG)
      • 4.2.0-stable
      • 4.1.0-stable
      • 4.0.2-stable
      • 4.0.1-stable
      • 4.0.0-stable
      • 4.0.0 (2022-10-05)
        • Common
    • Updating EVA ICS to 4.2.0
      • Important changes and new features
      • Update instructions
        • Preparing
        • Updating
          • x86_64
          • aarch64 (ARM64)
    • Updating EVA ICS to 4.1.0
      • Community edition
      • Enterprise edition
        • Check is the key update required
        • How to update keys
          • Obtaining new Enterprise edition keys
          • Preparing the system
          • Applying a new key
          • Updating the node
    • Quick start
      • Few words from the authors
      • Installation
      • The task
      • Commons
      • Connecting the equipment
        • Creating items
        • Fieldbus connection
      • Defining logic
        • Rules
        • Logic macros
          • Deploying lmacro controller
          • Create logic macro
      • Building Human-Machine Interface
        • Creating users and ACLs
        • Creating a web-HMI application
      • The same but with deployment
    • System documentation
      • Installation
        • Supported operating systems
          • Recommended for production setups
          • Tested and fully compatible
          • Docker images
          • Kubernetes
        • Preparing the system
        • Installing
          • Basic install
          • Installer arguments
        • Uninstalling
        • Post-install configuration
        • Startup
        • Configuring/rebuilding Python venv
        • Updating
          • Local nodes
          • Remote nodes
          • Mission-critical systems
          • Offline nodes
        • Running under a restricted user
        • Installing/updating on Debian 10
      • Migration to V4
        • Why migrate to EVA ICS v4
        • Migration
          • V3 nodes in V4 cluster
          • V3 and V4 nodes on the same machine
          • Logic
          • Item states
          • AAA
          • Python macros
          • Deployment
          • Item scripts
          • UDP API
      • Platform architecture
        • Basics
        • Service types
          • Common types
          • Service names
        • Primary external services
        • Additional external services
        • Service management
          • Create
          • Manage
          • Destroy / undeploy / purge
          • Advanced configuration
      • DCS Items
        • DCS items vs interfaces
        • Item types
          • sensor
          • unit
          • lvar
          • lmacro
        • Creating and managing items
        • Item states
          • Binary values
        • Common item properties
          • OID
          • meta
          • enabled
          • logic
          • connected
          • node
      • Data objects
        • Manipulating data objects
          • Example
        • Data types
        • Validation
        • Submitting data
          • EAPI
          • UDP
        • Development
          • ICD and HTTP API methods
          • Code generation
      • Configuration
        • Configuration files
          • eva_config
          • watchdog
        • Configuration registry keys
          • eva/config/core
          • eva/config/bus
          • eva/config/registry
          • eva/config/logs
          • eva/config/python-venv
        • Troubleshooting
      • Registry database
        • Technology
        • Reasons
        • Maintenance
          • Bus cheat-sheet
        • Structure
      • Authentication, authorization and accounting
        • Basics
        • Structure
          • Access control list
          • API key
          • User
          • Session token
          • Accounting
      • Command-line tools
        • eva-shell
          • Installing/updating
          • Installing on a client machine
        • EVA Cloud Manager CLI
        • JS CLI
        • Bus CLI
        • Registry management
          • Command-line tools
        • Python VENV management
      • IaC and deployment
        • Deployment file
          • AAA
          • Uploading files
          • Items
          • Macros
          • Services
          • Data objects
          • Generator sources
          • Alarms
          • Video recordings
          • Extra commands
        • Deployment via CLI
          • Deploying
          • Undeploying
        • Node parameters
        • Advanced configuration
        • Dealing with timeouts
          • General timeout
          • Remote node timeout
          • Downloading files on remote nodes
        • Deployment automation
      • Data replication
        • Single-level clusters
          • Setting up a primary node
          • Setting up a secondary node
          • Connecting nodes
        • Multi-level clusters
          • Setting up a top node
          • Setting up the middle node
          • Connecting nodes
        • Uni-directional replication
          • Bi-directional networks
          • Uni-directional networks (Data diodes)
        • Replication between local services
      • Local clustering and secondary points
        • Basics
        • Architecture
        • Configuration
        • Moving services to secondary points
        • Updating
        • Uploading files via deployment
      • Binary streams (Video/Audio/Custom)
        • General information
        • Preparing the system
        • Multimedia streams in web applications
        • Stream replication between nodes
        • Sinking data into streams
          • Video sink controller
          • GStreamer plugins
          • Custom applications
      • Running in containers
        • The official images
          • What is included
          • Quick start
          • Volumes
          • Preparation
          • Configuring the node core
          • Initialization
          • Deployment
          • Updating
          • Logging customization
        • Features of using with Kubernetes
      • Using with Kubernetes
        • Basics
        • Native vs mixed
        • Configuring containers
        • Conclusion
      • Low-latency real-time
        • Requirements
        • System preparation
        • General setup
          • System parameters
          • Service parameters
          • Real-time core
        • Monitoring
          • Node system dashboard
          • eva-shell
        • Limitations
        • EVA ICS vs RoboPLC
      • High-load and mission-critical environments
        • Tuning EVA ICS
        • Memory consumption
        • Crash tests
        • Hardware
      • Understanding timeouts
        • Call timeouts
        • The schema
        • Configuring the timeouts
          • Client timeout
          • Local replication pub/sub timeout
          • Individual remote node timeouts
          • Bus call timeout
      • Security
        • Functionality
        • FIPS 140
        • Enhanced memory protection
        • Connecting untrusted remote nodes
      • Troubleshooting
        • Creating dumps
          • Plain
          • Encrypted
        • Support requests
        • Community support
    • The core and services
      • The core
        • Configuration
        • EAPI methods
          • action
          • action.kill
          • action.list
          • action.result
          • action.terminate
          • action.toggle
          • bus.publish
          • core.shutdown
          • core.sysinfo
          • dobj.deploy
          • dobj.error
          • dobj.get_config
          • dobj.list
          • dobj.push
          • dobj.undeploy
          • dobj.validate
          • item.announce
          • item.create
          • item.deploy
          • item.destroy
          • item.disable
          • item.enable
          • item.get_config
          • item.list
          • item.state
          • item.summary
          • item.undeploy
          • log.get
          • log.purge
          • lvar.clear
          • lvar.decr
          • lvar.incr
          • lvar.reset
          • lvar.set
          • lvar.toggle
          • node.get
          • node.list
          • run
          • save
          • spoint.list
          • svc.deploy
          • svc.disable
          • svc.enable
          • svc.flash
          • svc.get
          • svc.get_params
          • svc.list
          • svc.purge
          • svc.restart
          • svc.undeploy
          • test
          • update
      • 1-Wire (OWFS) controller
        • Setup
        • EAPI methods
          • action
          • kill
          • terminate
          • w1.get
          • w1.info
          • w1.scan
          • w1.set
      • Active directory auth service
        • Setup
        • EAPI methods
          • auth.user
          • cache.delete
          • cache.purge
          • reset.user
          • user.get_profile_field
        • Preparing related services
        • Active Directory configuration
        • Usage
          • Authentication
          • ACL prefixes
      • Alarm service
        • Functionality limitations
        • Architecture
        • Alarm UI
        • Terminology
          • Alarm space
          • Alarm operations
          • Sources and source kinds
          • Alarm controls
          • Alarm states
          • Alarm subscriptions
        • Defining alarms
        • Service instance IDs
        • Setup
        • EAPI methods
          • alarm.deploy
          • alarm.destroy
          • alarm.get_config
          • alarm.history
          • alarm.list
          • alarm.set
          • alarm.state
          • alarm.subscribe
          • alarm.summary
          • alarm.undeploy
          • alarm.unsubscribe
        • HTTP API
          • ack
          • history
          • shelv
          • state
          • subscribe
          • summary
          • unshelv
          • unsubscribe
      • Bus UDP bridge
        • Outgoing payload
        • Incoming payload
          • State
          • RPC call
        • Installing/updating
        • Setup
        • EAPI methods
      • Data diode replication service
        • Setup
        • EAPI methods
      • Data generator
        • Usage
          • Item targets
          • RPC targets
          • Sampling
          • Planning
          • Applying
        • Generator sources
          • Counter
          • Random
          • Random float
          • Time
          • UDP float
          • Wave
        • Setup
        • EAPI methods
          • source.apply
          • source.deploy
          • source.destroy
          • source.get_config
          • source.list
          • source.plan
          • source.undeploy
      • Data objects I/O controller
        • Setup
      • Default ACL service
        • Setup
        • EAPI methods
          • acl.deploy
          • acl.destroy
          • acl.export
          • acl.format
          • acl.get_config
          • acl.list
          • acl.undeploy
      • Docker Application launcher
        • Requirements
        • Networking
        • Volumes
        • Applications
        • Deployment example
          • deploy.yml
          • docker-compose.yml
          • nginx.conf
        • Setup
        • EAPI methods
          • app.get_config
      • Ethernet/IP PLC controller gateway
        • Setup
        • EAPI methods
          • action
          • kill
          • terminate
          • var.get
          • var.set
      • Event accounting service
        • Functionality
          • Cloud-wide accounting
          • Supported storages
          • Sending events from custom services
          • Querying events from command-line
          • Querying events using web UI
        • Setup
        • EAPI methods
          • query
          • query.count
          • query.field_aggregated
          • report
        • HTTP API
          • query
          • query.count
          • query.field_aggregated
      • FFI launcher
        • Command-line arguments
        • Setup
        • EAPI
      • File manager service
        • Setup
        • EAPI methods
          • file.get
          • file.put
          • file.unlink
          • list
          • sh
          • terminal.create
          • terminal.kill
          • terminal.resize
          • terminal.sync
      • GStreamer pipeline service
        • Preparing the system
        • Setup
        • EAPI methods
          • pipeline.state
      • HMI kiosk manager
        • Creating/managing kiosks
          • Creating a kiosk connection
          • Using one-time accounts for authentication
          • Listing kiosk states
          • Destroying kiosk connection
          • More functions
          • Kiosks and IaC-deployment
        • Setup
        • EAPI methods
          • kiosk.alert
          • kiosk.deploy
          • kiosk.destroy
          • kiosk.dev_close
          • kiosk.dev_open
          • kiosk.display
          • kiosk.eval
          • kiosk.get_config
          • kiosk.info
          • kiosk.list
          • kiosk.login
          • kiosk.logout
          • kiosk.navigate
          • kiosk.reboot
          • kiosk.reload
          • kiosk.test
          • kiosk.undeploy
          • kiosk.zoom
      • HMI service
        • Setup
        • EAPI methods
          • api_log.get
          • authenticate
          • i18n.cache_purge
          • session.broadcast.reload
          • session.broadcast.restart
          • session.destroy
          • session.list
          • stream.list
          • tpl.reload
          • user_data.get
          • ws.stats
        • HTTP API
          • Basics
          • action
          • action.kill
          • action.result
          • action.terminate
          • action.toggle
          • api_log.get
          • bus::<TARGET_SVC>::<METHOD>
          • call
          • db.list
          • dobj.generate_struct_code
          • dobj.get_struct
          • dobj.list
          • item.check_access
          • item.state
          • item.state_history
          • item.state_history_combined
          • item.state_log
          • llc.list
          • log.get
          • login
          • logout
          • lvar.clear
          • lvar.decr
          • lvar.incr
          • lvar.reset
          • lvar.set
          • lvar.toggle
          • ping
          • profile.get_field
          • profile.set_field
          • pvt.get
          • pvt.list
          • pvt.put
          • pvt.unlink
          • run
          • session.list_neighbors
          • session.set_readonly
          • set_password
          • test
          • user.reset
          • user_data.delete
          • user_data.get
          • user_data.set
          • x::<TARGET_SVC>::<METHOD>
        • Web socket methods
          • bye
          • ping
          • stream.start
          • subscribe.log
          • subscribe.state
          • subscribe.state_initial
          • unsubscribe.state
          • Events
      • InfluxDB state history
        • Setup
        • EAPI methods
          • state_announce
          • state_history
          • state_log
          • state_push
        • Retention policies
      • Item state expiration service
        • Setup
      • Item state file writer (JSON/CSV)
        • Setup
        • EAPI methods
          • flush
          • rotate
      • JSON databases state history
        • Setup
        • EAPI methods
          • state_announce
          • state_history
          • state_log
          • state_push
      • LDAP authentication service
        • Installing/updating
        • Setup
        • EAPI methods
          • auth.user
      • Legacy (V3) replication service
        • Limitations
          • Protocol and configuration
          • Items
          • rpvt
        • Installing/updating
        • Setup
        • EAPI methods
          • node.list
          • node.reload
      • Local user/key authentication service
        • Setup
        • EAPI methods
          • auth.key
          • auth.user
          • key.deploy
          • key.destroy
          • key.export
          • key.get
          • key.get_config
          • key.list
          • key.regenerate
          • key.undeploy
          • password.hash
          • reset.user
          • user.create_one_time
          • user.deploy
          • user.destroy
          • user.export
          • user.get_config
          • user.get_profile_field
          • user.list
          • user.set_password
          • user.set_profile_field
          • user.undeploy
      • Logic manager
        • Functionality
          • Rules
          • Cycles
          • Jobs
          • Parsers
        • Setup
        • EAPI methods
          • action
          • cycle.get
          • cycle.list
          • cycle.reset
          • cycle.start
          • cycle.stop
          • job.get
          • job.list
          • kill
          • rule.get
          • rule.list
          • terminate
      • MCP (Model Control Protocol) service
        • Safety and security
        • Configuring agents
        • Recommended initial prompt
        • Troubleshooting
        • Setup
        • EAPI methods
      • Mailer service
        • Setup
        • EAPI methods
          • send
      • Mirror service
        • Updating mirror files on the source node
        • Configuring mirror on target nodes
        • Setup
      • Modbus master controller
        • Setup
        • EAPI methods
          • action
          • kill
          • reg.get
          • reg.set
          • terminate
      • Modbus slave service
        • Setup
        • EAPI methods
          • MB
          • save
      • Network monitor
        • Setup
        • EAPI methods
      • OPC-UA controller gateway
        • Setup
        • EAPI methods
          • action
          • kill
          • terminate
          • var.get
          • var.set
          • var.set_bulk
      • OTP 2nd-Factor authentication service
        • Setup
        • EAPI methods
          • otp.check
          • otp.destroy
      • Object detector for YOLO models
        • Installing/updating
        • Setup
        • EAPI methods
          • detector.stats
      • Pub/Sub (MQTT) controller gateway
        • Blocks
          • Block kinds
          • Parsing/creating payloads
        • Setup
        • EAPI methods
          • pubsub.publish
      • Python macros controller
        • Installing/updating
        • Setup
        • EAPI methods
          • run
      • Real-time monitor
        • Setup
        • EAPI methods
          • task.list
      • Replication service
        • Pub/sub security
        • Replicating untrusted nodes
        • Setup
        • EAPI methods
          • bus::<SVC_ID>::<METHOD>
          • node.append
          • node.deploy
          • node.export
          • node.get
          • node.get_config
          • node.list
          • node.mtest
          • node.reload
          • node.remove
          • node.test
          • node.undeploy
      • SNMP/UDP trap handler
        • SNMP Traps
          • Processing
          • Supported SNMP data types
        • Native traps
          • Updates
          • Actions
          • Encrypted/compressed traps
        • Setup
      • SQL databases state history
        • Setup
        • EAPI methods
          • state_announce
          • state_history
          • state_log
          • state_push
      • Script runner controller
        • Commons
        • Update scripts
        • Action scripts
          • Current unit states
        • Setup
        • EAPI methods
          • action
          • kill
          • terminate
          • update
      • Shared lock service
        • Setup
        • EAPI methods
          • list
          • lock
          • status
          • unlock
      • System monitoring controller
        • Monitoring
          • System
          • CPU
          • Load average
          • Memory
          • Disks
          • Block devices
          • Network
        • Setup
        • Monitoring remote hosts
          • Monitoring secondary points
          • Monitoring non-EVA ICS hosts
          • X509 authentication
      • Text-to-speech service
        • Installing/updating
        • Setup
        • EAPI methods
          • say
      • TimescaleDB databases state history
        • Timescale Installation
        • Initialization
        • Modifying compression policy
        • Data insertion policy
        • Setup
        • EAPI methods
          • state_announce
          • state_history
          • state_history_combined
          • state_log
          • state_push
        • Retention policies
      • TwinCAT ADS bridge
        • Setup
        • EAPI methods
          • get_symbol_info
          • ping
          • read
          • su_read
          • su_write
          • su_write_read
          • write
          • write_read
      • TwinCAT ADS controller
        • Setup
        • EAPI methods
          • action
          • kill
          • terminate
          • var.get
          • var.set
          • var.set_bulk
      • Video server service
        • Functionality limitations
        • Preparing the system
        • Video storage
        • Managing recorded streams
        • Viewing video recordings
        • Video recoding FPS
        • Extracting video to a file
        • Setup
        • EAPI methods
          • Crec.pull
          • Nrec.pull
          • rec.create
          • rec.deploy
          • rec.destroy
          • rec.disable
          • rec.enable
          • rec.get_config
          • rec.image
          • rec.info
          • rec.list
          • rec.segmented
          • rec.undeploy
        • HTTP API
          • rec.image
          • rec.info
          • rec.segmented
      • Video sink controller
        • Preparing the system
        • Building pipelines
        • Examples
        • Including external pipelines
        • Video recording
        • Setup
        • EAPI methods
          • stream.info
      • Virtual controller
        • Setup
        • EAPI methods
          • action
          • get
          • list
          • set
          • var.destroy
          • var.get
          • var.list
          • var.set
          • var.set_bulk
        • Controller modes
          • Simple
          • PLC simulation
      • Zero-failure replication service
        • Service roles
          • Collector
          • Replicator
          • Standalone
        • Recommendations
        • Untrusted nodes and zero-failure replication
        • Strategies
          • Continuous
          • Manual
          • Source-forced
          • Self-repairing
        • Setup
        • EAPI methods
          • client.self_repair
          • client.start
          • disable
          • enable
          • mailbox.delete_block
          • mailbox.disable
          • mailbox.enable
          • mailbox.fill
          • mailbox.get_block
          • mailbox.list
          • mailbox.list_blocks
          • mailbox.rotate
          • process_dir
          • status
      • V4 Core
      • The default services
        • Authentication, Authorization and Accounting
        • SCADA automation
        • Databases and data storages
        • Data replication
        • Digital twins and process simulation
        • Fieldbus and external equipment
        • System services
        • User interfaces, HMI
        • Multimedia services
        • Artificial Intelligence
    • Vendored UI applications
      • Application list
        • Operation centre
        • Node system dashboard
          • Web terminal
      • Single sign-on and session sharing
      • Disabling vendored applications
    • Operation centre
      • Quick tour
      • Access levels
      • Items
      • Alarms
        • Alarm states
        • Alarm history
      • Data objects
      • Logic
      • Trends
      • CCTV
      • IDC
        • Creating a new dashboard
        • Editing best practices
        • General dashboard parameters
        • Working with elements
          • Adding elements
          • Editing elements
        • Viewing dashboards
        • Element properties
          • Image
          • IFrame
        • Custom cliparts
        • Dashboard variables
        • Custom elements
    • Reports
      • Report generation
      • Report kinds
      • Data export
    • Cloud Manager UI
      • Installation
        • Windows 10/11+
        • Linux (Ubuntu 20.04/22.04)
        • Other operating systems
      • Operating manual
        • Connecting to a node
          • Connection dialog
          • Connection path
          • Timeout
        • Common operations
          • Monitoring tables
          • Adding a resource/item
          • Editing resources/items
          • Deleting resources/items
          • Exporting resources/items
          • Importing resources/items
        • Actions
          • Watching an action
        • Broker
        • Items
          • Displaying items
          • Unit actions
          • Running lmacros
          • Lvar operations
          • Watching item states
        • Log
        • Services
          • Service management
          • Service info and EAPI methods
        • Secondary points
    • EVA ICS Enterprise
      • General terms and conditions
      • Enterprise services
        • Installation
        • Active Directory authentication
        • Zero-failure replication
        • HMI Kiosk manager
        • Accounting service
        • Alarm service
        • Video server service
        • Low-latency real-time mode
      • EVA ICS WebEngine WASM extension
        • Installation
        • Licensing
        • Limitations
      • PSRT Enterprise
      • Mission-critical projects
    • Interface development (HMI apps)
      • UI development
        • Basics
        • Web applications
        • Authentication
        • The model
        • Handling file uploads
      • Serving private data (PVT)
        • Loading files from PVT Server
        • Serving private data from EVA ICS Registry
        • Serving remote resources (RPVT)
          • Local network resources
          • Remote network resources
      • Serving structured data
        • Format conversion
        • Multi-language
          • Usage
          • Generating
          • Locale cache
        • Serving structured data from EVA ICS Registry
      • HMI file uploads
        • File upload form
          • How does it work
          • Errors
          • Additional form parameters
        • Processing macro
        • Security and file upload limits
      • Server Templates
        • Working with server templates
        • Template files
        • Template variables
      • Storing user data
        • Working with user data
          • Settings user data
          • Getting user data
          • Deleting user data
        • Setting limits
      • Filtering HMI API calls
        • API methods filtered
        • Execution arguments
        • Example task
          • Preparing
          • The code
      • Front-end server for HMI service
        • Example with NGINX
      • Mobile clients
        • Android
          • EVA ICS Control Center client
          • Building own client
          • Authentication
        • Apple iOS and other mobile platforms
      • Two-factor OTP authentication
        • System setup
          • Services
          • Excluding user accounts from OTP
          • Resetting OTP for a user account
        • User authentication
          • API
          • Authenticator programs
        • HMI application example
    • Automation
      • Inverted states
        • Pulling data
        • Actions
      • Logic manager
        • Functionality
          • Rules
          • Cycles
          • Jobs
          • Parsers
        • Setup
        • EAPI methods
          • action
          • cycle.get
          • cycle.list
          • cycle.reset
          • cycle.start
          • cycle.stop
          • job.get
          • job.list
          • kill
          • rule.get
          • rule.list
          • terminate
      • Opener robots
        • Hardware schemas
          • AC circuit
          • RDC circuit
        • Software configuration
      • Python Logic Macros
        • Executing macros
        • Common principles of macros operation
        • System macros
          • On startup
          • On shutdown
        • Macros and security
        • Macros built-ins
        • Built-in exceptions
        • Variables
        • Built-in functions
        • General functions
          • bus_publish - publishes a message to a bus topic
          • date - date/time
          • decrement_shared - decrements value of the shared variable
          • exit - finishes macro execution
          • get_directory - gets path to EVA ICS directory
          • increment_shared - increments value of the shared variable
          • instant - system monotonic timer value
          • ls - lists files in directory
          • mail - sends email message
          • ping - pings a remote host
          • rpc_call - performs a bus RPC call
          • run - executes another lmacro
          • service - get the service object for the direct access
          • set_alarm - sets alarm state
          • set_shared - sets value of the shared variable
          • sha256sum - calculates SHA256 sum
          • shared - gets value of the shared variable
          • sleep - sleep(seconds)
          • system - execute the command in a subshell
          • system_name - get the system name
          • time - current time in seconds since Epoch
        • Item functions
          • state - gets item state
          • status - gets item status
          • update_state - updates item state
          • value - gets item value
        • LVar functions
          • clear - clears lvar status
          • decrement - decrements lvar value
          • increment - increments lvar value
          • is_expired - checks is lvar (timer) or item state expired/error
          • reset - resets lvar status
          • set - sets lvar value
          • toggle - toggles lvar status
        • Unit control
          • action - executes unit control action
          • action_toggle - executes an action to toggle unit status
          • is_busy - checks is the unit busy
          • kill - kills unit actions
          • result - gets action status
          • start - executes an action to a unit
          • stop - executes an action to stop a unit
          • terminate - terminates action execution
        • Locking functions
          • lock - acquires a lock
          • unlock - releases a lock
        • Logging
          • trace - log trace message
          • debug - log debug message
          • info - log info message
          • warning - log warning message
          • error - log error message
          • critical - log critical message
          • report_accounting_event - reports an event into accounting system
      • Logic line (Rust SDK)
        • Deployment
        • Security
        • Service example
      • Node-RED integration
        • EVA ICS Setup
          • docker-compose.yml
          • deploy.yml
          • UDP bridge
        • Node-RED setup
          • UDP input
          • UDP output
      • Wireless equipment
        • System preparation
        • Decoding signals
          • Service configuration
          • Parsing output
    • Computer Vision
      • Hardware Requirements
      • Source video streams
        • Source stream
        • Decoded raw source stream
      • Detector
        • Preparing the system
        • Service configuration
        • Result processing
        • Compressing the debug stream
      • Working with results
    • Software Development Kit (SDK)
      • Rust SDK
        • Rust bindings and libraries
        • A simple service in Rust
          • The task
          • Creating a project
          • Preparing the system
          • Service code
          • Service template
          • Testing the service
          • Deploying the service
        • Extending HMI with X calls in Rust
          • X call basics
          • Service example
          • Service template
          • HTTP API call example
        • Working with item states
          • Introduction
          • State replication
        • Programming logic
          • Deployment
          • Security
          • Service example
        • Processing lmacro calls
          • Usage
          • Full service example
        • Keeping service data between reloads
          • Keeping data in the node registry
          • Keeping data in files
        • API reference (commons)
        • API reference (SDK)
        • External BUS/RT services
          • The task
          • Preparation
          • Source code
          • Registering the service in Windows
          • Calling RPC methods
      • Python SDK
        • Python bindings and libraries
        • A simple service in Python
          • SDK Installation
          • The task
          • Preparing the system
          • Creating and debugging services with EVA ICS Python SDK
          • Service code
          • Service template
        • Extending HMI with X calls in Python
          • X call basics
          • Service example
          • Service template
          • HTTP API call example
        • Keeping service data between reloads
          • Keeping data in the node registry
          • Keeping data in files
        • API reference
          • SDK
          • Client wrapper
          • BUS/RT client (EAPI)
          • HTTP client
          • Cloud client
          • Deploy
      • JavaScript/TypeScript SDK
        • JavaScript runtime
        • SDK module
        • Service example
          • Service code (TypeScript)
          • package.json
          • Service template
          • HTTP API call example
        • Running with Deno
          • Installation
          • SDK imports
          • Service command
      • C++ SDK
        • Resources
        • Additional documentation
        • Implementing methods
        • Requirements
        • Service example
          • Build
          • Source code
        • Logging
      • C-style ABI
        • Commons
          • EvaFFIBuffer
          • EvaFFIFrame
          • EvaFFIRpcEvent
        • Convention
        • Library functions to implement
          • Mandatory
          • eva_svc_set_op_fn
          • eva_svc_get_result
          • svc_init
          • Optional
          • svc_prepare
          • svc_launch
          • svc_terminate
          • svc_on_frame
          • svc_on_rpc_call
        • Operations
          • EVA_FFI_SVC_OP_IS_ACTIVE
          • EVA_FFI_SVC_OP_SUBSCRIBE_TOPIC
          • EVA_FFI_SVC_OP_UNSUBSCRIBE_TOPIC
          • EVA_FFI_SVC_OP_PUBLISH_TOPIC
          • EVA_FFI_SVC_OP_RPC_CALL
          • EVA_FFI_SVC_OP_GET_RPC_RESULT
          • EVA_FFI_SVC_OP_LOG_TRACE
          • EVA_FFI_SVC_OP_LOG_DEBUG
          • EVA_FFI_SVC_OP_LOG_INFO
          • EVA_FFI_SVC_OP_LOG_WARN
          • EVA_FFI_SVC_OP_LOG_ERROR
          • EVA_FFI_SVC_OP_TERMINATE
          • EVA_FFI_SVC_OP_POC
      • Services practices
        • Startup
        • Loading initial payload
        • STDIN beacon
        • Environment variables
        • Launching prepare commands
        • Initializing
        • Workers
        • React-to-fail mode
        • Announcing service status
        • RPC
        • Handling signals
        • Logging
        • Waiting for the core
        • Waiting for dependencies
        • Handling events
        • Security
          • AAA
          • FIPS 140
        • Exit codes
      • EAPI commons
        • Calling EAPI methods
          • Type specifications
          • Error codes
        • EAPI Basics
          • Metadata format
          • Method info structure
          • Example
        • Communications
          • The core
          • ACL services
          • Core events
          • Raw events
          • Replication events
          • Actions
          • Logs
          • Accounting
          • Authentication
          • Service topics
        • Security model and call ACLs
        • Initial payload
        • Controller service requirements
          • Events
          • Unit actions
          • Macros actions
      • Advanced EAPI Raw Events
        • Conditional update
        • On modified
          • Set other
          • Set other value delta
        • A real example: consumption metering
          • Basic metering
          • Handling meter replacement
      • Pub/Sub RPC and data replication
        • Common
        • Events
        • Tests
        • Announce/discovery/node state
        • Bulk events
        • RPC
          • Requests
          • Replies
          • Encryption
      • Operation Centre custom IDC elements
        • Creating a new element module
        • Multiple elements in a single module
        • Element API
          • Defining an element
          • Element properties
          • View function
          • Actions
          • Accessing WebEngine
        • Example: a custom unit action button
          • Module code
          • Module CSS styles
          • The result
    • Fieldbus and IoT protocols and equipment
    • License
      • TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
        • 1. Definitions.
        • 2. Grant of Copyright License.
        • 3. Grant of Patent License.
        • 4. Redistribution.
        • 5. Submission of Contributions.
        • 6. Trademarks.
        • 7. Disclaimer of Warranty.
        • 8. Limitation of Liability.
        • 9. Accepting Warranty or Additional Liability.
      • Common Clause 1
  • EVA ICS Machine Learning kit
    • Machine Learning kit server
      • Installation
        • Downloading/updating
        • Installing server license key
        • Creating/deploying service instances
        • Using front-end web server
      • Data processing best practices
        • Querying data
          • Apache arrow streams
          • CSV streams
        • Uploading data
          • Apache arrow streams
          • Apache arrow files
          • CSV files/streams
      • HTTP API
        • Query item state history
          • OID processing map
        • Upload item state history
          • OID upload processing map
      • EAPI
        • Methods
          • Citem.state_history
          • N
          • NB
        • Payloads
          • OID processing map
    • Python client
      • Installation
        • Workstation/standalone
        • EVA ICS venv
      • Querying data
        • HTTP Lazy initialization
        • BUS/RT Lazy initialization
        • Standard initialization
        • OID mapping
        • OID mapping from CSV file
        • Usage example
      • Uploading data
      • Module API
    • R client
      • Installation
        • With remotes/devtools
        • Manual
      • Querying data
      • Uploading data
      • Module API
        • eva.session
          • Description
          • Usage
          • Arguments
        • eva.authenticate
          • Description
          • Usage
          • Arguments
        • eva.call
          • Description
          • Usage
          • Arguments
        • eva.credentials
          • Description
          • Usage
          • Arguments
        • eva.test
          • Description
          • Usage
          • Arguments
        • eva.history.request
          • Description
          • Usage
          • Arguments
        • eva.history.append_oid
          • Description
          • Usage
          • Arguments
        • eva.history.fetch
          • Description
          • Usage
          • Arguments
        • eva.history.push
          • Description
          • Usage
          • Arguments
    • Machine learning: regressions
      • System preparation
        • Install Python modules
        • Create OID mapping
      • Training the model
        • Testing data fetch
        • Perform the training
      • Predicting events
        • Fetching data
        • Performing a prediction
  • EVA ICS WebEngine
    • Quick start
      • Initialization
      • Configuration
      • Watching states and performing API calls
    • Migration from EVA ICS JS Framework
    • Types exported
    • Configuring
      • API and Authentication
      • Item processing, special
      • Read-only informational variables
      • Loading configuration
    • Calling API methods
      • Single API calls
      • Bulk API calls
      • Binary data (send/receive)
      • Error codes
    • Worker intervals
    • Handling engine events
      • Pub/Sub model
        • Topics
        • WebAssembly support
        • State replication example
      • Generic hooks
    • QR code for evaHI-based apps
    • Advanced usage
      • Multi-page interfaces, external authentication
        • The primary page
        • Secondary pages
      • Authentication with front-end server
      • Single-page applications
    • API reference
      • WebEngine
    • EVA ICS WebEngine Multimedia
      • Description
      • Example: video playback
  • EVA ICS WebEngine React
    • Commons
      • Default web engine
      • Creating a new project
      • Single-page applications
    • UI Components
      • HMIApp
        • Kiosk Compatibility
        • Running in React Strict mode
        • Example
        • Parameters
        • Types
          • FunctionLogout
        • Interfaces
          • LoginProps
        • CSS classes
      • ItemValue
        • Example
        • Parameters
        • Interfaces
          • ItemValueThreshold
        • CSS classes
      • ItemValueTable
        • Example
        • Parameters
        • Interfaces
          • ItemValueDisplay
          • ItemValueThreshold
        • CSS classes
      • ControlButtonToggle
        • Example
        • Parameters
        • CSS classes
        • CSS Example
      • ControlButtonValue
        • Example
        • Parameters
        • CSS classes
      • ControlButtonRun
        • Example
        • Parameters
        • CSS classes
      • ControlBlock
        • Example
        • Parameters
        • Types
          • ControlButtonKind
        • Interfaces
          • ControlButtonDisplay
        • CSS classes
      • Gauge
        • Example
        • Parameters
        • Types
          • GaugeType
          • GaugeStrokeLineCap
        • CSS classes
        • CSS Example
      • Thermometer
        • Example
        • Parameters
        • CSS classes
        • CSS Example
      • ProgressBar
        • Example
        • Parameters
        • CSS classes
        • CSS Example
      • Chart
        • Example
        • Preparing
        • Parameters
        • CSS classes
      • Canvas
        • Example
        • Parameters
        • Interfaces
          • CanvasPosition
          • ControlButtonDisplay
          • ItemValueDisplay
        • CSS classes
      • EvaLivePlayer
        • Example
        • Parameters
        • Interfaces
          • EvaLivePlayerParams
    • Low-level hooks
      • useEvaStateUpdates
        • Parameters
        • Usage example
      • useEvaStateBlock
        • Parameters
        • Usage example
      • useEvaState
        • Parameters
        • Usage example
      • useEvaStateBulk
        • Parameters
        • Usage example
      • useEvaStateHistory
        • Parameters
        • Output
        • Usage example
      • useEvaAPICall
        • Parameters
        • Output
        • Usage example
    • EVA ICS WebEngine React and Redux
      • Data flow
      • Examples
        • Replication
        • Usage
  • EVA ICS Application for Grafana
    • Installation
      • Via Grafana catalog
      • Manual
    • Connecting
      • Creating Grafana data source
      • Configuring
        • EVA ICS API keys
        • Grafana data source
    • Querying data
      • Basics
      • Example queries
        • Current item state
        • State history
        • System monitoring
      • Advanced
        • Calling methods on remote nodes
    • Controls
      • Installing
      • Configuring in Grafana
      • Using custom embedded HMI applications
  • Virtual Fieldbus Simulator
    • Installation
      • Preparing the system
      • Downloading/updating
    • Modbus
      • Virtual Modbus port
        • Deployment
        • EAPI
      • Virtual Modbus generic context
        • Features provided
        • Deployment
        • EAPI methods
          • save
      • Virtual Modbus sensor
        • Features provided
        • Deployment
        • EAPI methods
          • var.get
          • var.set
      • Virtual Modbus relay
        • Features provided
        • Deployment
        • EAPI methods
          • var.get
    • TwinCAT/ADS
      • Virtual ADS port
        • Deployment
        • EAPI methods
          • list
      • Virtual ADS service
        • Features provided
        • Deployment
        • EAPI methods
          • handle.list
          • state.get
          • state.set
          • var.get
          • var.list
          • var.set
      • Supported features and limitations
    • Data generators
    • What is new
  • RoboPLC
    • Why RoboPLC?
      • Starting a new project
      • Connecting I/O
      • Make it real-time
      • Test your program
      • Deploy your program
      • Monitoring
      • Sending control commands
      • Debugging image processing and computer vision
    • Quick start: Hello world
      • Creating a new Rust project
      • Program code
      • Configuring the remote
      • Flashing
    • Quick start: A real task
      • The task
      • Creating a new Rust project
      • Program code
    • Configuring the system
      • RoboPLC Manager
        • Installation
        • Layout
          • Modes
          • Services and folders
          • Logging
          • Uploading a program (flashing)
          • Environment variables
        • Uninstalling RoboPLC Manager
      • Kernel
      • CPUs
        • CPU isolation
        • CPU governor
      • Memory allocation
      • IRQs
      • Mission-critical systems
      • Troubleshooting
        • Real-time thread parameters can not be set with “operation not permitted”
      • Hardware
    • Flashing
      • Installing RoboPLC CLI
      • Configuring
        • Configuration file
      • Cross-compilation
      • Custom compilation
      • Flashing
      • Debugging/testing
      • Switching between remotes
      • Program rollback
      • Program live updates
        • Preparing the program code to handle live updates
        • Performing the live update
        • Technical details
    • Running in Docker
      • Creating RoboPLC project for Docker
      • Building Docker image
      • Environment variables
      • Limitations
    • Persistent state
      • Required features and 3rd party crates
      • Example
      • Real-time safety
    • Timers and intervals
      • Timers
      • Intervals
    • Metrics
      • Working with metrics
      • Exporting metrics
      • Viewing metrics
    • Logic lines
      • Working with logic lines
      • Exporting logic lines
      • Viewing logic lines
        • Schema notation
    • Video streams
      • Working with video streams
      • Viewing streams with RoboPLC manager
    • RFlow chat
      • Working with RFlow
      • RFlow chat interface in RoboPLC manager
    • RoboPLC Data Objects (RPDO)
      • Host
      • Context
      • Communication
      • Transport and security
      • Implementations
        • Rust
      • Technical details
        • Packet
        • Frame
        • Commands
        • RawData
        • Errors
    • Human-Machine Interfaces
      • Text-based HMI
        • Basics
        • Displaying logs
      • Graphical HMI
        • Wayland
          • Installation
          • Configuration
          • Usage
          • egui integration
          • Creating HMI elements
          • Handling special keys
        • X-server
          • Installation
          • Configuration
          • Usage
      • Trobleshooting
    • Compatible hardware
    • Read-only mode for mission-critical systems
      • Performing general maintenance
      • Storing PLC data in read-only mode
      • Setting up the system in read-only mode
        • Raspberry Pi OS (Raspbian)
    • RoboPLC Professional
      • Purchasing license
      • Getting a free license
      • Features included
      • Installing a license
    • RoboPLC License
      • TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
        • 1. Definitions.
        • 2. Grant of Copyright License.
        • 3. Grant of Patent License.
        • 4. Redistribution.
        • 5. Submission of Contributions.
        • 6. Trademarks.
        • 7. Disclaimer of Warranty.
        • 8. Limitation of Liability.
        • 9. Accepting Warranty or Additional Liability.
      • Common Clause 1
    • RoboPLC Manager License
  • PSRT - industrial Pub/Sub for WAN
    • PSRT server and clients
      • Source code
      • Installation (free version)
        • Building from source
        • Configuration files
        • Troubleshooting
        • Authentication
      • Statistical data
        • Overview (web interface / API)
        • Most active topics
      • UDP encryption
      • Enterprise version
    • PSRT clusters
      • Cluster nodes
      • Node configuration
      • Usage
    • PSRT protocol specifications
      • Common
      • Control socket
        • Greetings
        • Subscribe
        • Unsubscribe
        • Publish
        • Publish if subscribed (replicate)
        • Bye
      • Data socket
        • Greetings
        • Keep-alive pings
        • Message push
        • Bye
      • UDP
        • Plain
        • Encrypted
    • Security
      • Functionality
      • Native packages
        • Supported distributions
        • OpenSSL versions
      • Universal packages
        • OpenSSL versions
      • FIPS 140
    • Embedding PSRT server as EVA ICS v4 service
      • Installing
      • Configuring
      • Running
      • Using with local replication services
  • Gateryx - Web Application Firewall
    • Installation
      • System requirements
      • Installing from pre-built packages
      • Building from source
      • Running in Docker/Kubernetes
    • Configuration
      • Setup layout
      • Initial setup
      • Server
        • Main configuration
        • Web Applications
        • System application
        • Plain application
      • Administration client
      • Configuring 3rd party apps for OIDC
      • Configuring 3rd party apps for Gateryx API
    • Usage
      • Authentication
      • Web applications
      • System application
      • Service users
      • Using application tokens
    • Security
      • General cryptography
      • Web applications
      • SNI
      • Passkeys/WebAuthn
      • External IDPs
      • Authorization
      • Server administration
      • Built-in protections
      • Privilege separation
  • BUS/RT - IPC bus
    • IPC documentation
      • Bindings
      • Inter-process communication
        • Client registration
        • Broadcasts
        • Topics
        • QoS
      • Security and reliability model
      • Rust crate features
      • Performance tips
    • Broker
      • Broker API
      • Stand-alone broker server
      • Embedded broker
        • Security model
    • Protocol specifications
      • Greetings
      • Outgoing frames
      • Pings (keep-alive frames)
      • Incoming frames
        • Acknowledgements
        • Messages
        • Topic publications
    • RPC layer specifications
      • Payload bytes
        • Requests
        • Responses
        • Error codes
    • RPC Cursors
      • When to use cursors
      • Technical background
      • Server example
      • Client example
    • Secondary clients and blocking RPC
      • Event handlers and RPC
        • The problem
        • Solutions
      • Secondary clients
        • Creating secondary clients in Rust
          • Internal
          • IPC
          • Handling frames
        • Creating secondary clients in other languages
  • Hardware boxes
    • System information and access
    • Remote assistance VPN
    • Headless configuration
      • Configuring static IP address
      • Configuring dynamic IP address
      • Enabling root access for own keys
      • Disabling execution from a USB stick
  • Commons
    • Sharing terminal sessions
      • Setup
        • Automatic
        • Manual
      • Usage
      • Security
      • Issues
  • Legacy products
    • EVA ICS v3
      • System Documentation
        • Installation
          • Officially supported platforms
          • System Requirements
          • Using installer
          • Manual installation
          • Updating
          • Moving to another folder
          • Setting up additional features
          • Watchdog
          • How to assign IDs to items
          • Cloud setup
          • Log file customization
          • Using NGINX as a frontend for SFA interface
          • Serving local mirror
        • What's new
          • 3.4.2 (2021-12-20)
          • 3.4.1 (2021-09-06)
          • 3.4.0 (2021-07-07)
          • 3.3.2 (2021-03-01)
          • 3.3.1 (2020-08-26)
          • 3.3.0 (2020-02-05)
          • 3.2.5 (2019-10-03)
          • 3.2.4 (2019-07-30)
          • 3.2.3 (2019-06-24)
          • 3.2.2 (2019-05-21)
          • 3.2.1 (2019-04-16)
          • 3.2.0 (2019-04-02)
          • 3.1.1 (2018-10-22)
          • 3.1.0 (2018-09-01)
          • 3.0.2 (2018-06-23)
          • 3.0.1 (2018-02-21)
          • 3.0.0 (2017-10-19)
        • Quick start
          • Installation
          • Task
          • Connecting the equipment
          • Defining logic
          • Building a very simple Human-Machine Interface
        • Security
          • General recommendations
          • Network design
          • Should I run it as root?
          • API recommendations
        • Registry database
          • Technology
          • Reasons
          • Configuration
          • Maintenance
          • Structure
          • SDK
        • Notification system
          • Event structure
          • Configuring the notification endpoints
          • MQTT (mqtt)
          • PSRT
          • UDP notifiers (LURP)
          • DB Notifiers
          • 3rd party Clouds
          • File notifiers
          • HTTP Notifiers
          • Bulk (buffered) notifications
          • Notifier frame counters
          • Switching Pub/sub notifiers
        • Data pullers
          • Configuration
          • Execution
          • Data exchange
          • Pulr
        • Command line interfaces
          • EVA command line apps
          • Device control apps
        • Authentication
          • API keys
          • Users
          • Combined ACLs
        • IaC and deployment
          • Deployment configuration file
          • How to deploy configuration
        • FAQ
          • Is this a “smart home”?
          • Is this IoT?
          • If the system is free and open, what is your interest?
          • Is EVA ICS complicated and difficult to learn?
          • Is it reliable?
          • How about security?
          • What programming languages can I use to write scripts and macros?
          • What if I have zero experience in programming?
          • What automation is all about? What are automation components?
          • Is EVA ICS IEC 61131-3 compliant?
          • Where is the interface? I want a web interface!
          • Why EVA ICS has 3 different APIs?
        • High-load environments
          • Tuning EVA ICS
          • Hardware
          • Benchmarks
        • Crash-free setup
          • Inventory configuration
          • Users and API keys
          • Item states
          • Logs
          • Suicide timeouts
        • Always exec
        • EVA ICS container
          • Permanent volumes
          • Configuration variables
          • Prepare / setup scripts
          • Updating
        • Enterprise extensions
          • EVA JS Framework WASM extension
          • PSRT Enterprise
      • Components
        • Universal Controller
          • UC POLL DELAY
          • config/uc/main registry key
          • Custom variables
          • Action queues
          • Startup and shutdown
        • Logic Manager
          • config/lm/main registry key
          • Custom variables
          • Connecting UC controllers
          • Macro execution queues
          • Startup and shutdown
        • SCADA Final Aggregator
          • config/sfa/main registry key
          • Custom variables
          • Connecting UC and LM PLC controllers
          • Interface
          • Startup and shutdown
        • Control and monitoring items
          • Common item parameters
          • Item layout
          • Unit
          • Sensor
          • Validation of state value
          • Logic variable
          • Multi-updates
          • Device
          • Defaults
      • UC EI
        • Logging in
        • Navigation
        • System information
        • Units
        • Sensors
        • Log viewer
        • Disabling the interface
      • LM EI
        • Logging in
        • Navigation
        • System information
        • Logic variables
        • Macros
        • Decision rules
        • Log viewer
        • Disabling the interface
      • Equipment management
        • Cloud Manager
          • Dashboard
          • Controller management
        • Drivers
          • Structure
          • Logical to physical interfaces (LPI)
          • Physical interfaces (PHI)
        • Item scripts
          • Item actions
        • Modbus
          • Defining Modbus virtual port
          • Testing Modbus virtual port
          • Deleting Modbus virtual port
          • Generic Modbus drivers
          • Modbus slave
        • OWFS (1-Wire)
          • Setup
          • Defining OWFS bus
          • Scanning OWFS for devices
          • Deleting OWFS bus
        • SNMP
          • Collecting and sending data
          • Connecting equipment with drivers
          • Universal processing
        • Virtual items
          • Virtual drivers
      • Logic control
        • Logic control macros
          • Executing macros
          • Debugging macros
          • Macros configuration
          • Common principles of macros operation
          • System macros
          • Macros and security
          • Macros built-ins
          • Variables
          • Extending macros functionality
          • General functions
          • Item functions
          • LVar functions
          • Unit control
          • Rule management
          • Scheduled job management
          • Devices
          • Logic cycles
          • Locking functions
          • Logging
        • Decision-making matrix
          • Event analysis algorithms
          • Rule creation
          • Rule configuration
          • Tips for rule configuration
        • Scheduled jobs
          • Job creation
          • Job configuration
          • Job schedule interval
        • Logic cycles
          • Cycle creation
          • Cycle configuration
          • on_error macro
          • Performance
          • Cycles vs jobs
      • Interface development
        • UI basics
          • Development
          • Custom error pages
          • UI Favicon
        • SFA Templates
          • Template files
          • Template variables
          • Template functions
        • SFA PVT
          • Loading files from PVT Server
          • Receiving the file list
          • Receiving the newest and the oldest file
          • Image Processing
          • Disabling cache
          • Serving private data from EVA ICS Registry
          • Remote content
        • Serving structured data
          • Format conversion
          • Multi-language
          • Serving structured data from EVA ICS Registry
        • HMI file uploads
          • File upload form
          • Processing macro
          • Security and file upload limits
        • API session tokens
          • Usage
          • Expiration
          • Read-only mode
        • Supervisors
          • API locks
          • Broadcast messages
          • CLI
        • Active Directory support
          • Automatic setup
          • Manual setup
          • Active Directory configuration
          • Usage
        • Mobile clients
          • Android
          • Apple iOS and other mobile platforms
      • Integrations
        • AKCP
          • Equipment supported
          • Setup
          • Performance tuning
        • Arduino
          • Receiving commands from EVA ICS
          • Sending data to EVA ICS UC
        • Amazon Web Services
          • AWS IoT as MQTT broker
          • Amazon Polly TTS
        • CCTV Cameras
          • Uploaded images
          • Image in local network
          • Image in 3rd party network
          • Image from password-protected camera
          • Video streams
        • Denkovi
          • Equipment supported
          • Relay setup
          • smartDEN IP-32IN setup
          • Performance tuning
        • Energenie EG-PM2-LAN
          • Setup
        • Ethernet/IP
          • Drivers
          • Logic
          • Setup
        • Elastic (ELK)
          • Prepare EVA ICS
          • Configure ELK
        • Google Cloud Platform
          • Google Cloud IoT Core
          • Google Cloud TTS
        • Grafana
          • Data
          • Controls
          • Custom resources
        • Philips Hue
          • Setup
        • LoRaWAN
          • Requirements
        • Nanoleaf
          • Setup
        • Node-Red
          • Configuring EVA ICS
          • Collecting events in Node-Red
          • Processing events
          • Defining control templates
          • Controlling equipment
          • Deploying
        • Roboger
          • Servers supported
          • Setup
          • Using in macros
        • Raspberry Pi
          • Hardware recommendations
          • Installation
          • GPIO
        • Sonoff
          • Setup
        • Text-to-Speech
          • Configure audio hardware
          • Obtain cloud provider key
          • Create TTS configuration
          • Install TTSBroker Python module
          • Load tts macro extension
          • Use loaded function
          • Combine with macro
        • UniPi
          • Hardware recommendations
          • Installation
          • 1-Wire
          • Inputs/outputs
        • UPnP
          • EVA ICS controllers
          • 3rd-party equipment
        • Xiaomi Yeelight
          • Setup
      • API
        • Common methods
          • API basics
          • General functions
          • CVARs
          • Locking functions
          • Logging
          • API keys
          • User accounts
          • Notifier management
          • File management
          • Core scripts
          • Registry management
        • UC API
          • API basics
          • Item functions
          • Item management
          • 1-Wire bus via OWFS
          • Modbus ports
          • Physical interfaces (PHIs)
          • LPI and drivers
          • Data pullers
          • Devices
        • UC RESTful API
          • RESTful API basics
          • General functions
          • Item functions
          • Item management
          • 1-Wire bus via OWFS
          • Modbus ports
          • Physical interfaces (PHIs)
          • LPI and drivers
          • Data pullers
          • Devices
          • CVARs
          • Locking functions
          • Logging
          • API keys
          • User accounts
          • Notifier management
          • File management
          • Core scripts
          • Registry management
        • UC UDP API
          • Basics
          • Batch commands
          • Encryption and authentication
          • Custom packets
        • LM API
          • API basics
          • LVar functions
          • LVar management
          • Decision matrix rules
          • Logic cycles
          • Logic macros
          • Macro extensions
          • Remote controllers
          • Scheduled jobs
        • LM RESTful API
          • RESTful API basics
          • General functions
          • LVar functions
          • LVar management
          • Decision matrix rules
          • Logic cycles
          • Logic macros
          • Macro extensions
          • Remote controllers
          • Scheduled jobs
          • CVARs
          • Locking functions
          • Logging
          • API keys
          • User accounts
          • Notifier management
          • File management
          • Core scripts
          • Registry management
        • SFA API
          • API basics
          • Item functions
          • Logic cycles
          • Logic macros
          • Supervisor functions
          • Remote controllers
          • Connected clients
        • SFA RESTful API
          • RESTful API basics
          • General functions
          • Item functions
          • Logic cycles
          • Logic macros
          • Supervisor functions
          • Remote controllers
          • Connected clients
          • CVARs
          • Locking functions
          • Logging
          • API keys
          • User accounts
          • Notifier management
          • File management
          • Core scripts
          • Registry management
        • API Clients
          • EVA JS Framework
          • API client for Python
          • JSON RPC API client
      • Extension development
        • Extending HOWTO
          • Tips and tricks
          • I/O
          • Logic
          • Plug-ins
          • Extensions as packages
        • Core scripts
          • What are EVA ICS core scripts
          • What are core scripts for
          • Core script globals and functions
          • Core script events
          • Logging
          • Creating and managing core script files
          • Code examples
        • Physical interfaces for drivers
          • Required variables in a header
          • Classes and modules
          • Constructor
          • Primary methods
          • Parent methods
          • Optional methods
          • Config validation
          • Working with unit values
          • Handling timeouts
          • Handling events
          • Working with I2C/SMBus
          • Working with Modbus
          • Working with Ethernet/IP
          • Working with Modbus slave memory space
          • Working with 1-Wire via OWFS
          • Working with SNMP
          • Working with MQTT
          • Working with UDP API
          • Discovering SSDP hardware
          • Shared namespaces
          • Asynchronous I/O
          • Exceptions
          • Testing
          • DriverAPI resources
        • Logic macro extensions
          • Loading macro extension
          • Extension functions
          • Included extensions
          • Developing your own extension
        • Core plug-ins
          • Guide by example
          • Resources
        • Packages
          • Package format
          • Setting up packages
          • Setup file format
          • Keeping setup core script after install
          • Installing additional Python modules
          • Manipulating with configuration files
      • Advanced development
        • Framework development HOWTO
          • Sessions
          • API calls
          • Web socket sessions
          • Global heartbeat
          • Item state replication
          • Actions
          • Timers
      • PHIs
      • EVA ICS v3 Troubleshooting Knowledge Base
        • KB00001: SFA or LM PLC with secondaries connected keeps restarting
          • Problem
          • Solution
        • KB00002: Install / venv rebuild fails on Ubuntu 18.04 LTS / Debian 10 / RHEL 8
          • Problem
          • Solution
        • KB00003: OWFS feature setup fails on RedHat Enterprise Linux 8/Centos 8
          • Problem
          • Solution
        • KB00004: Wrong items deployed on a secondary UC or LM PLC node
          • Problem
          • Solution
        • KB00005: Timeouts during long API calls, API calls are repeated multiple times
          • Problem
          • Solution
        • KB00006: Install fails on Fedora 33
          • Problem
          • Solution
        • KB00007: InfluxDB data frames / charts begin with zero or null values
          • Problem
          • Solution
        • KB00008: Customizing EVA ICS updates
          • Problem
          • Solution
        • KB00009: Difference between “-s” and “-u” Cloud deploy options
          • Problem
          • Solution
        • KB00010: Item states are not synchronized in real-time via MQTT
          • Problem
          • Solution
        • KB00011: Renaming EVA ICS nodes
          • Problem
          • Solution
        • KB00012: Running EVA ICS under restricted users
          • Problem
          • Solution
        • KB00013: Stop EVA ICS when Registry DB is not accessible
          • Problem
          • Solution
        • KB00014: Unable to start update after a one failed
          • Problem
          • Solution
        • KB00015: A component fails to start after crash / unsuccessful upgrade etc.
          • Problem
          • Solution
        • KB00016: Active directory feature setup fails on Debian 11
          • Problem
          • Solution
        • KB00017: Dealing with startup timeouts on high-loaded nodes
          • Problem
          • Solution
        • KB00018: Preventing accidental shutdowns
          • Problem
          • Solution
        • KB00019: Python segmentation fault on Ubuntu 22.04
          • Problem
          • Solution
        • KB00020: Problems with Python 3.11
          • Problem
          • Solution
      • EVA ICS v3 License
        • TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
          • 1. Definitions.
          • 2. Grant of Copyright License.
          • 3. Grant of Patent License.
          • 4. Redistribution.
          • 5. Submission of Contributions.
          • 6. Trademarks.
          • 7. Disclaimer of Warranty.
          • 8. Limitation of Liability.
          • 9. Accepting Warranty or Additional Liability.
        • Common Clause 1
    • EVA ICS JS Framework
      • Installation
        • For web browsers
        • For Node.js
      • Quick start
        • Initialization
        • Configuration
        • Watching states and performing API calls
      • Configuring
        • API and Authentication
        • Item processing, special
        • Read-only informational variables
      • Calling API methods
        • Single API calls
        • Bulk API calls
        • Error codes
      • Worker intervals
      • Handling Framework events
      • QR code for evaHI-based apps
      • Advanced usage
        • Multi-page interfaces, external authentication
          • The primary page
          • Secondary pages
        • Authentication with front-end server
      • API reference
        • Framework
        • Toolbox
    • HMI Block UI
      • Installation
        • Installing UI App
          • EVA ICS v4
          • Package (EVA ICS v3, 3.3.2+)
        • Creating UI pages
      • Dashboard page
        • Global variables
          • title
          • url
          • default-login
          • motd
          • info-level
        • buttons
          • Simple button
          • Button with menu
          • Button with a slider
        • data
        • cameras
        • control-blocks
        • data-blocks
        • layout
        • layout-compact
        • Actions
          • Action types
          • action_params
      • Simple page
      • Sensors page
        • Global variables
          • main-page
        • charts
          • Single-item chart
          • Multiple-item chart
          • Chart with multiple timeframes
          • Multiple items and multiple timeframes
          • Legend
        • layout
        • Chart options
      • Navigation
      • Overriding and embedding
        • $eva.hmi.after_draw
        • $eva.hmi.error
        • $eva.hmi.format_camera_src
        • $eva.hmi.format_chart_config
        • $eva.hmi.prepare_layout
        • $eva.hmi.top_bar
        • Overriding logo
        • Embedding
      • Icons (default theme)
        • Data icons
        • State icons
        • Special state icons
          • circle
          • music
          • star
    • rPLC
      • Quick start
        • The task
        • Creating a new Rust project
        • Creating PLC configuration
        • Building PLC context and I/O
        • Creating our first PLC program
        • Program threads
        • Going real-time
        • More samples
      • Basics
        • Function “main”
        • PLC status
        • Stack size
        • Shutdown
          • Timeout
          • Custom shutdown function
        • Building PLC context and I/O
        • Control files
        • Error handling
      • PLC context
        • Defining
          • Data types
          • Arrays
          • Structures
          • Arrays of structures
          • Boxed arrays
          • Custom types
        • Accessing
          • With macros
          • Directly
        • Serialization
      • PLC programs
        • Defining
        • Shifting
        • Spawning
        • Thread names
      • Logging
        • Logging messages
        • Logging stats
        • Verbose logging
        • Syslog logging
      • Custom building
        • Config variables
        • Assigning the variables
      • Real-time threads
        • Intro
        • CPU isolation
        • Thread affinity and priority
      • Input/output
        • Modbus master (client) I/O
          • Block configuration
          • Register codes
          • Input blocks
          • Output blocks
          • IEEE-754 endianness
        • Modbus slave (server) I/O
          • Defining Modbus servers
          • Defining Modbus context
          • Program example
        • OPC-UA client I/O
          • Block configuration
          • Input blocks
          • Output blocks
        • EVA ICS v4 EAPI
          • Action pool size
          • Block configuration
          • Input blocks
          • Output blocks
          • Real-time
          • Connecting to EVA ICS node
          • Accessing PLC instance from EVA ICS
        • Custom I/O
          • plc.yml
          • main.rs
          • Cargo.toml
          • build.rs
      • Internal API
        • API protocol
        • API methods
      • Managing PLC instances
        • PLC var directory
        • Registering a PLC instance
        • Unregistering PLC instance
        • Additional commands
  • The Trademarks
    • The Trademark Supervisors
    • Usage Conditions
      • Common conditions
      • Direct usage
      • Indirect usage
        • Correct examples
        • Incorrect examples
      • Fair usage
BMA InfoSys
  • »
  • Legacy products »
  • HMI Block UI »
  • Navigation

Navigation

For navigation, evaHI configuration is being parsed. This allows to use the same navigation config as for smartphone app, as for the usual web clients.

The navigation configuration (placed by default in /opt/eva/ui/.evahi/config.yml) looks like:

serial: 15
index: /ui/
index_landscape: /ui/
menu:
    - {icon: 'room.png', name: 'Room 1', url: /ui/room1.j2}
    - {icon: 'room.png', name: 'Room 2', url: /ui/room2.j2}
    - {icon: 'room.png', name: 'Hall', url: /ui/hall.j2}
    - {icon: 'sensors.png', name: 'Sensors', url: /ui/sensors.j2}

where serial and index_landscape parameters are used by smartphone app only and ignored by HMI application.

Parameter index is used to specify the main UI page. Menu is built from menu section entries, menu icons are located in /opt/eva/ui/.evahi/icons folder.


© Copyright Bohemia Automation / Altertech.