Logo

Contents

  • EVA ICS v4
    • System documentation
      • Quick start
        • Few words from the authors
        • Installation
        • The task
        • Commons
        • Connecting the equipment
          • Creating items
          • Fieldbus connection
        • Defining logic
          • Rules
          • Logic macros
        • Building Human-Machine Interface
          • Creating users and ACLs
        • The same but with deployment
      • Installation
        • Supported operating systems
          • Recommended for production setups
          • Tested and fully compatible
        • Preparing the system
        • Installing
          • Basic install
          • Installer arguments
        • Post-install configuration
        • Startup
        • Configuring/rebuilding Python venv
        • Updating
          • Local nodes
          • Remote nodes
        • Running under a restricted user
      • Node 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
      • 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
      • Cloud Manager UI
        • Installation
          • Windows 10/11+
          • Linux (Ubuntu 20.04/22.04)
          • Other operating systems
        • Operating manual
          • Connecting to a node
          • Common operations
          • Actions
          • Broker
          • Items
          • Log
          • Services
          • Secondary points
      • What is new
        • 4.0.1-stable
        • 4.0.0-stable
        • 4.0.0 (2022-10-05)
          • Common
      • Platform architecture
        • Basics
        • Service types
          • Common types
          • Service names
        • Primary external services
        • Additional external services
        • Service management
          • Create
          • Manage
          • Destroy / undeploy / purge
          • Advanced configuration
      • Local clustering and secondary points
        • Basics
        • Architecture
        • Configuration
        • Moving services to secondary points
        • Updating
        • Uploading files via deployment
      • 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
      • Items
        • Item types
          • sensor
          • unit
          • lvar
          • lmacro
        • Creating and managing items
        • Item states
        • Common item properties
          • OID
          • meta
          • enabled
          • logic
          • connected
          • node
      • Command-line tools
        • eva-shell
          • Installing/updating
        • EVA Cloud Manager CLI
        • Bus CLI
        • Registry management
          • Command-line tools
        • Python VENV management
      • IaC and deployment
        • Deployment file
          • AAA
          • Uploading files
          • Items
          • Macros
          • Services
          • Extra commands
        • Deployment via CLI
          • Deploying
          • Undeploying
        • Advanced configuration
      • High-load environments
        • Tuning EVA ICS
        • Hardware
      • Understanding timeouts
        • Call timeouts
        • The schema
        • Configuring the timeouts
          • Client timeout
          • Local replication pub/sub timeout
          • Bus call timeout
      • Troubleshooting
        • Creating dumps
          • Plain
          • Encrypted
        • Support requests
        • Community support
      • Security
        • Functionality
        • Native packages
          • Supported distributions
          • OpenSSL versions
          • Switching to native
        • Universal packages
          • OpenSSL versions
        • FIPS 140
        • Connecting untrusted remote nodes
      • EVA ICS Enterprise
        • General terms and conditions
        • Enterprise services
          • Installation
          • Active Directory authentication
          • Zero-failure replication
          • HMI Kiosk manager
        • EVA JS Framework WASM extension
          • Installation
          • Licensing
          • Limitations
        • PSRT Enterprise
        • Mission-critical projects
    • The core and services
      • The core
        • Configuration
        • EAPI methods
          • action
          • action.kill
          • action.list
          • action.result
          • action.terminate
          • action.toggle
          • core.shutdown
          • 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.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
        • Preparing related services
        • Active Directory configuration
        • Usage
          • Authentication
          • ACL prefixes
      • Default ACL service
        • Setup
        • EAPI methods
          • acl.deploy
          • acl.destroy
          • acl.export
          • acl.format
          • acl.get_config
          • acl.list
          • acl.undeploy
      • Ethernet/IP PLC controller gateway
        • Setup
        • EAPI methods
          • action
          • kill
          • terminate
          • var.get
          • var.set
      • File manager service
        • Setup
        • EAPI methods
          • file.get
          • file.put
          • file.unlink
          • sh
      • 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
          • tpl.reload
          • ws.stats
        • HTTP API
          • Basics
          • action
          • action.kill
          • action.result
          • action.terminate
          • action.toggle
          • api_log.get
          • bus::<TARGET_SVC>::<METHOD>
          • item.check_access
          • item.state
          • item.state_history
          • item.state_log
          • log.get
          • login
          • logout
          • lvar.clear
          • lvar.decr
          • lvar.incr
          • lvar.reset
          • lvar.set
          • lvar.toggle
          • run
          • session.list_neighbors
          • session.set_readonly
          • set_password
          • test
          • x::<TARGET_SVC>::<METHOD>
        • Web socket methods
          • bye
          • ping
          • subscribe.log
          • subscribe.state
          • Events
      • InfluxDB state history
        • Setup
        • EAPI methods
          • state_history
          • state_log
        • Retention policies
      • Item state expiration service
        • Setup
      • Item state file writer (JSON/CSV)
        • Setup
        • EAPI methods
          • flush
          • rotate
      • 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
          • user.create_one_time
          • user.deploy
          • user.destroy
          • user.export
          • user.get_config
          • user.list
          • user.set_password
          • user.undeploy
      • Logic manager
        • Functionality
          • Rules
          • Cycles
          • Jobs
        • Setup
        • EAPI methods
          • action
          • cycle.get
          • cycle.list
          • cycle.reset
          • cycle.start
          • cycle.stop
          • job.get
          • job.list
          • kill
          • rule.get
          • rule.list
          • terminate
      • 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
      • OTP 2nd-Factor authentication service
        • Setup
        • EAPI methods
          • otp.check
          • otp.destroy
      • Python macros controller
        • Installing/updating
        • Setup
        • EAPI methods
          • run
      • 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_history
          • state_log
      • 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
      • Text-to-speech service
        • Installing/updating
        • Setup
        • EAPI methods
          • say
      • TwinCAT ADS bridge
        • Setup
        • EAPI methods
          • 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
      • Virtual controller
        • Setup
        • EAPI methods
          • action
          • get
          • list
          • set
      • Zero-failure replication service
        • Service roles
          • Collector
          • Replicator
          • Standalone
        • Recommendations
        • Untrusted nodes and zero-failure replication
        • Setup
        • EAPI methods
          • client.start
          • disable
          • enable
          • mailbox.delete_block
          • mailbox.fill
          • mailbox.get_block
          • mailbox.list_blocks
          • mailbox.rotate
          • process_dir
          • status
    • 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
      • 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
        • 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
        • Variables
        • Built-in functions
        • General functions
          • 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
          • 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
          • time - current time in seconds since Epoch
        • Item functions
          • state - gets item state
          • status - gets item status
          • 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
          • debug - log debug message
          • info - log info message
          • warning - log warning message
          • error - log error message
          • critical - log critical message
    • Software Development Kit (SDK)
      • Bindings and libraries
        • Rust
        • Python
      • 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
          • Auth
        • Security model and call ACLs
        • Initial payload
        • Controller service requirements
          • Events
          • Unit actions
          • Macros actions
      • Rust SDK examples
        • A simple service in Rust
          • The task
          • Creating a project
          • Preparing the system
          • Service code
          • Service template
        • Extending HMI with X calls in Rust
          • X call basics
          • Service example
          • Service template
          • API call example
      • Python SDK examples
        • A simple service in Python
          • SDK Installation
          • The task
          • Preparing the system
          • Service code
          • Service template
        • Extending HMI with X calls in Python
          • X call basics
          • Service example
          • Service template
          • API call example
      • Pub/Sub RPC and data replication
        • Common
        • Events
        • Tests
        • Announce/discovery/node state
        • Bulk events
        • RPC
          • Requests
          • Replies
          • Encryption
    • 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 v3
    • System Documentation
      • Installation
        • Officially supported platforms
          • Recommended for production setups
          • Tested and fully compatible
        • System Requirements
        • Using installer
          • Automatic and unattended
          • Customized
        • Manual installation
          • Preparing the system
          • Configuring MQTT broker
          • Cloud service provider as MQTT broker
          • Downloading and extracting EVA ICS distribution
          • Customizing Python virtual environment
          • Installing
          • Unicode
        • Updating
          • Using EVA Shell
          • Using system shell
          • With a pre-downloaded tarball
          • Intermediate versions
        • Moving to another folder
        • Setting up additional features
        • Watchdog
        • How to assign IDs to items
        • Cloud setup
          • Configuring LM and SFA as primary
          • Configuring UC and LM PLC as secondaries
          • Cloud manager
          • Cloud updates
        • Log file customization
        • Using NGINX as a frontend for SFA interface
          • External authentication
          • Using HTTP basic auth for EVA ICS authentication
        • Serving local mirror
          • Installing
          • Configuring mirror
          • Configuring secondary nodes
          • Removing
      • What's new
        • 3.4.2 (2021-12-20)
          • Common
          • LM PLC
        • 3.4.1 (2021-09-06)
          • Common
        • 3.4.0 (2021-07-07)
          • Common
          • UC
          • LM PLC
          • SFA
          • Removed and deprecated
        • 3.3.2 (2021-03-01)
          • Common
          • UC
          • LM PLC
          • SFA
        • 3.3.1 (2020-08-26)
          • Common
          • UC
          • LM PLC
          • SFA
        • 3.3.0 (2020-02-05)
          • Common
          • UC
          • LM
        • 3.2.5 (2019-10-03)
          • Common
          • LM PLC
          • Cloud manager
        • 3.2.4 (2019-07-30)
          • Common
          • UC
          • LM PLC
          • SFA
        • 3.2.3 (2019-06-24)
          • Common
          • UC
          • LM PLC
          • SFA
        • 3.2.2 (2019-05-21)
          • UC
          • LM PLC
          • SFA
        • 3.2.1 (2019-04-16)
          • Common
        • 3.2.0 (2019-04-02)
          • Common
          • UC
          • LM PLC
          • SFA
          • Deprecated (will be removed in 3.3.0)
        • 3.1.1 (2018-10-22)
          • Common
          • UC
          • LM PLC
          • SFA
        • 3.1.0 (2018-09-01)
          • Core
          • UC
          • LM PLC
          • SFA
          • API Client
          • Common
        • 3.0.2 (2018-06-23)
          • Emergency interfaces
          • Core
          • UC
          • LM PLC
          • SFA
          • Common
        • 3.0.1 (2018-02-21)
          • Core
          • UC
          • LM PLC
        • 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
          • X-Real-IP HTTP header
          • Universal Controller API keys
          • Logic Manager API keys
          • SCADA Final Aggregator interfaces
          • Common API security recommendations
          • Developer mode
      • Registry database
        • Technology
        • Reasons
        • Configuration
        • Maintenance
        • Structure
        • SDK
      • Notification system
        • Event structure
          • Event subjects
          • state - item state change event
          • action - unit and macro action events
          • log - logged event
          • server - server events
        • Configuring the notification endpoints
          • Basic Configuration
          • Subscribing the notifier to events
        • MQTT (mqtt)
          • MQTT and state notifications
          • MQTT and action notifications
          • MQTT and log notifications
          • Setting up MQTT SSL
          • Setting up MQTT QoS
          • Use MQTT for updating item states
          • MQTT and unit actions
          • MQTT and bulk events
          • IoT Cloud setup
        • PSRT
        • UDP notifiers (LURP)
          • UDP frame format
        • DB Notifiers
          • RDBMS (SQLite, MySQL, PosgreSQL)
          • TimescaleDB
          • InfluxDB
          • Prometheus
        • 3rd party Clouds
          • Google Cloud Platform IoT Core
        • File notifiers
        • HTTP Notifiers
          • JSON
          • NDJSON
          • JSON RPC
          • Basic authentication
        • Bulk (buffered) notifications
        • Notifier frame counters
        • Switching Pub/sub notifiers
          • Switching notifier type
          • Switching controller notifier path on primary nodes
      • Data pullers
        • Configuration
        • Execution
        • Data exchange
          • Basics
          • Health check
          • Data output
          • Logging
          • State reporting
          • Environment variables
        • Pulr
      • Command line interfaces
        • EVA command line apps
          • EVA shell
          • Universal Controller
          • Logic Manager
          • SCADA Final Aggregator
          • Registry management
          • Other
        • Device control apps
          • TCP/IP controlled relays
          • 1-Wire (direct access via GPIO)
      • Authentication
        • API keys
          • Default and custom API keys
          • API key properties and ACL
        • Users
        • Combined ACLs
      • IaC and deployment
        • Deployment configuration file
          • Controllers
          • Items
          • Macros
          • Logical rules
          • Scheduled jobs
          • Cycles
        • How to deploy configuration
          • Deployment via CLI
          • Deployment during installation
          • Complex deployments
          • Devices
      • 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
          • Installation
          • Licensing
          • Limitations
        • 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
          • Status of the unit state
          • Value of the unit state
          • Units in EVA hive
          • Unit parameters
        • Sensor
          • Sensors in EVA hive
          • Sensor parameters
        • Validation of state value
        • Logic variable
          • LVars in EVA hive
          • Examples using LVars
          • LVar parameters
          • Simple logic
        • Multi-updates
          • Multi-updates in EVA hive
          • Multiupdate parameters
        • Device
          • Device example
          • Device limitations
        • 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)
          • basic LPI
          • sensor LPI
          • ssp LPI
          • esensor LPI
          • multistep LPI
          • Loading driver with the chosen LPI
        • Physical interfaces (PHI)
          • Universal PHIs
          • Physical events
          • Drivers and multi updates
          • Testing PHIs and additional PHI commands
      • Item scripts
        • Item actions
          • Passive updates of item state
          • Multiupdate scripts
          • Commands
      • Modbus
        • Defining Modbus virtual port
        • Testing Modbus virtual port
        • Deleting Modbus virtual port
        • Generic Modbus drivers
        • Modbus slave
      • OWFS (1-Wire)
        • Setup
          • Automatic setup
          • Manual setup
        • Defining OWFS bus
        • Scanning OWFS for devices
        • Deleting OWFS bus
      • SNMP
        • Collecting and sending data
        • Connecting equipment with drivers
        • Universal processing
          • SNMP traps
      • Virtual items
        • Virtual drivers
    • Logic control
      • Logic control macros
        • Executing macros
        • Debugging macros
        • Macros configuration
        • Common principles of macros operation
        • System macros
          • On startup
          • On shutdown
        • Macros and security
        • Macros built-ins
        • Variables
        • Extending macros functionality
        • General functions
          • alias - create object alias
          • cmd - execute a remote system command
          • date - date/time
          • decrement_shared - decrement value of the shared variable
          • exit - finish macro execution
          • get_directory - get path to EVA ICS directory
          • increment_shared - increment value of the shared variable
          • ls - list files in directory
          • mail - send email message
          • open_newest - open newest file by mask
          • open_oldest - open oldest file by mask
          • ping - ping remote host
          • run - execute another macro
          • set_shared - set value of the shared variable
          • sha256sum - calculate SHA256 sum
          • shared - get value of the shared variable
          • sleep - pause operations
          • system - execute the command in a subshell
          • time - current time in seconds since Epoch
        • Item functions
          • history - get item state history
          • lvar_status - get lvar status
          • lvar_value - get lvar value
          • sensor_status - get sensor status
          • sensor_value - get sensor value
          • state - get item state
          • status - get item status
          • unit_nstatus - get unit nstatus
          • unit_nvalue - get unit nvalue
          • unit_status - get unit status
          • unit_value - get unit value
          • value - get item value
        • LVar functions
          • clear - reset lvar value
          • decrement - decrement lvar value
          • expires - set lvar expiration time
          • increment - increment lvar value
          • is_expired - is lvar (timer) expired
          • reset - reset lvar value
          • set - set lvar value
          • toggle - toggle lvar value
        • Unit control
          • action - unit control action
          • action_toggle - toggle unit status
          • is_busy - is unit busy
          • kill - kill unit actions
          • q_clean - clean action queue of unit
          • result - get action status
          • start - start unit
          • stop - stop unit
          • terminate - terminate action execution
        • Rule management
          • set_rule_prop - set rule prop
        • Scheduled job management
          • set_job_prop - set job prop
        • Devices
          • deploy_device - deploy device items from template
          • undeploy_device - undeploy device items config from template
          • update_device - update device items config from template
        • Logic cycles
          • get_cycle_info - get cycle information
          • is_cycle_running - get cycle running status
          • list_cycle_props - list cycle props
          • reset_cycle_stats - reset cycle stats
          • set_cycle_prop - set cycle prop
          • start_cycle - start cycle
          • stop_cycle - stop cycle
        • Locking functions
          • lock - acquire lock
          • unlock - release lock
        • Logging
          • debug - put debug message to log file
          • info - put info message to log file
          • warning - put warning message to log file
          • error - put error message to log file
          • critical - put critical message to log file
      • 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
          • groups
          • state
          • api_call
          • get_aci
          • import_module
      • 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
          • 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
      • API session tokens
        • Usage
        • Expiration
        • Read-only mode
      • Supervisors
        • API locks
        • Broadcast messages
        • CLI
      • Active Directory support
        • Automatic setup
        • Manual setup
          • System setup
          • EVA ICS controller configuration
          • Configuring multiple domains
        • Active Directory configuration
        • Usage
          • Authentication
          • Key prefixes
      • Mobile clients
        • Android
          • EVA ICS Control Center client
          • Building own client
          • Authentication
        • 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
          • Setup EVA ICS UC
          • Setup Arduino
      • Amazon Web Services
        • AWS IoT as MQTT broker
          • During installation
          • After installation
        • 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
          • Automatic setup
          • Manual setup
          • Creating tag lists
          • Configuring
      • Elastic (ELK)
        • Prepare EVA ICS
        • Configure ELK
      • Google Cloud Platform
        • Google Cloud IoT Core
        • Google Cloud TTS
      • Grafana
        • Data
        • Controls
          • Custom UI
          • HMI Block UI
        • Custom resources
      • Philips Hue
        • Setup
      • LoRaWAN
        • Requirements
          • Hardware
          • Network server
      • Nanoleaf
        • Setup
      • Node-Red
        • Configuring EVA ICS
        • Collecting events in Node-Red
        • Processing events
        • Defining control templates
        • Controlling equipment
        • Deploying
      • Roboger
        • Servers supported
        • Setup
          • Preparing system
          • Preparing LM extension
          • Loading LM extension
        • 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
          • Local
          • Remote
        • 1-Wire
        • Inputs/outputs
      • UPnP
        • EVA ICS controllers
          • Notes
          • Request example
          • Response
        • 3rd-party equipment
      • Xiaomi Yeelight
        • Setup
    • API
      • Common methods
        • API basics
          • JSON RPC
          • Direct API
        • General functions
          • test - test API/key and get system info
          • save - save database and runtime configuration
          • check_item_access - check access to the particular item
          • clear_lang_cache - Clear language cache
          • cmd - execute a remote system command
          • install_pkg - install a package
          • list_plugins - get list of loaded core plugins
          • set_debug - switch debugging mode
          • shutdown_core - shutdown the controller
          • login - log in and get authentication token
          • logout - log out and purge the authentication token
          • set_token_readonly - Set token read-only
          • get_neighbor_clients - Get neighbor clients
        • CVARs
          • get_cvar - get the value of user-defined variable
          • set_cvar - set the value of user-defined variable
        • Locking functions
          • get_lock - get lock status
          • lock - acquire lock
          • unlock - release lock
        • Logging
          • log - put message to log file
          • log_debug - put debug message to log file
          • log_info - put info message to log file
          • log_warning - put warning message to log file
          • log_error - put error message to log file
          • log_critical - put critical message to log file
          • log_get - get records from the controller log
          • log_rotate - rotate log file
          • api_log_get - get API call log
        • API keys
          • create_key - create API key
          • destroy_key - delete API key
          • list_key_props - list API key permissions
          • list_keys - list API keys
          • regenerate_key - regenerate API key
          • set_key_prop - set API key permissions
        • User accounts
          • create_user - create user account
          • destroy_user - delete user account
          • get_user - get user account info
          • list_users - list user accounts
          • set_user_key - assign API key to user
          • set_user_password - set user password
          • list_tokens - List active session tokens
          • drop_tokens - Drop session token(s)
        • Notifier management
          • disable_notifier - disable notifier
          • enable_notifier - enable notifier
          • get_notifier - get notifier configuration
          • list_notifiers - list notifiers
          • restart_notifier - restart notifier
        • File management
          • file_put - put file to runtime folder
          • file_set_exec - set file exec permission
          • file_get - get file contents from runtime folder
          • file_unlink - delete file from runtime folder
        • Core scripts
          • list_corescript_mqtt_topics - List MQTT topics core scripts react on
          • reload_corescripts - Reload core scripts if some was added or deleted
          • subscribe_corescripts_mqtt - Subscribe core scripts to MQTT topic
          • unsubscribe_corescripts_mqtt - Unsubscribe core scripts from MQTT topic
        • Registry management
          • registry_safe_purge - Safely purge registry database
      • UC API
        • API basics
          • JSON RPC
          • Direct API
        • Item functions
          • action - unit control action
          • action_toggle - toggle unit status
          • disable_actions - disable unit actions
          • enable_actions - enable unit actions
          • groups - get item group list
          • kill - kill unit actions
          • q_clean - clean action queue of unit
          • result - get action status
          • start_item_maintenance - start item maintenance mode
          • state - get item state
          • state_history - get item state history
          • state_log - get item state log
          • stop_item_maintenance - stop item maintenance mode
          • terminate - terminate action execution
          • update - update the status and value of the item
        • Item management
          • list - list items
          • create - create new item
          • create_mu - create multi-update
          • create_sensor - create new sensor
          • create_unit - create new unit
          • destroy - delete item or group
          • get_config - get item configuration
          • list_props - list item properties
          • save_config - save item configuration
          • set_prop - set item property
          • clone - clone item
          • clone_group - clone group
        • 1-Wire bus via OWFS
          • create_owfs_bus - create OWFS bus
          • destroy_owfs_bus - delete OWFS bus
          • get_owfs_bus - get OWFS bus configuration
          • list_owfs_buses - list OWFS buses
          • scan_owfs_bus - scan OWFS bus
          • test_owfs_bus - test OWFS bus
        • Modbus ports
          • create_modbus_port - create virtual Modbus port
          • destroy_modbus_port - delete virtual Modbus port
          • get_modbus_port - get virtual Modbus port configuration
          • list_modbus_ports - list virtual Modbus ports
          • read_modbus_port - read Modbus register(s) from remote slave
          • test_modbus_port - test virtual Modbus port
          • write_modbus_port - write Modbus register(s) to remote slave
          • get_modbus_slave_data - get Modbus slave data
        • Physical interfaces (PHIs)
          • exec_phi - execute additional PHI commands
          • get_phi - get loaded PHI information
          • get_phi_ports - get list of PHI ports
          • list_phi - list loaded PHIs
          • list_phi_mods - get list of available PHI modules
          • load_phi - load PHI module
          • modhelp_phi - get PHI usage help
          • modinfo_phi - get PHI module info
          • phi_discover - discover installed equipment supported by PHI module
          • push_phi_state - push state to PHI module
          • put_phi_mod - upload PHI module
          • set_phi_prop - set PHI configuration property
          • test_phi - test PHI
          • unlink_phi_mod - delete PHI module file
          • unload_phi - unload PHI
        • LPI and drivers
          • assign_driver - assign driver to item
          • get_driver - get loaded driver information
          • list_drivers - list loaded drivers
          • list_lpi_mods - get list of available LPI modules
          • load_driver - load a driver
          • modhelp_lpi - get LPI usage help
          • modinfo_lpi - get LPI module info
          • set_driver_prop - set driver (LPI) configuration property
          • unload_driver - unload driver
        • Data pullers
          • create_datapuller - create data puller
          • destroy_datapuller - destroy data puller
          • get_datapuller - Get data puller
          • list_datapullers - List data pullers
          • restart_datapuller - Restart data puller
          • start_datapuller - Start data puller
          • stop_datapuller - Stop data puller
        • Devices
          • deploy_device - deploy device items from template
          • list_device_tpl - list device templates
          • undeploy_device - delete device items
          • update_device - update device items
      • UC RESTful API
        • RESTful API basics
          • Requests
          • Responses
          • Long API calls
        • General functions
          • test API/key and get system info
          • save database and runtime configuration
          • Clear language cache
          • check access to the particular item
          • execute a remote system command
          • get list of loaded core plugins
          • install a package
          • shutdown the controller
          • switch debugging mode
          • log in and get authentication token
          • log out and purge the authentication token
          • Set token read-only
          • Get neighbor clients
        • Item functions
          • clean action queue of unit
          • disable unit actions
          • enable unit actions
          • get action status
          • get item group list
          • get item state
          • get item state history
          • get item state log
          • kill unit actions
          • start item maintenance mode
          • stop item maintenance mode
          • terminate action execution
          • toggle unit status
          • unit control action
          • update the status and value of the item
        • Item management
          • list items
          • create multi-update
          • create new sensor
          • create new unit
          • get item configuration
          • list item properties
          • save item configuration
          • set item property
          • clone group
          • clone item
        • 1-Wire bus via OWFS
          • create OWFS bus
          • delete OWFS bus
          • get OWFS bus configuration
          • list OWFS buses
          • scan OWFS bus
          • test OWFS bus
        • Modbus ports
          • create virtual Modbus port
          • delete virtual Modbus port
          • get virtual Modbus port configuration
          • list virtual Modbus ports
          • read Modbus register(s) from remote slave
          • test virtual Modbus port
          • write Modbus register(s) to remote slave
          • get Modbus slave data
        • Physical interfaces (PHIs)
          • delete PHI module file
          • discover installed equipment supported by PHI module
          • execute additional PHI commands
          • get PHI module info
          • get PHI usage help
          • get list of PHI ports
          • get list of available PHI modules
          • get loaded PHI information
          • list loaded PHIs
          • load PHI module
          • push state to PHI module
          • set PHI configuration property
          • test PHI
          • unload PHI
          • upload PHI module
        • LPI and drivers
          • assign driver to item
          • get LPI module info
          • get LPI usage help
          • get list of available LPI modules
          • get loaded driver information
          • list loaded drivers
          • load a driver
          • set driver (LPI) configuration property
          • unload driver
        • Data pullers
          • Get data puller
          • List data pullers
          • Restart data puller
          • Start data puller
          • Stop data puller
          • create data puller
          • destroy data puller
        • Devices
          • delete device items
          • deploy device items from template
          • list device templates
          • update device items
        • CVARs
          • get the value of user-defined variable
          • set the value of user-defined variable
        • Locking functions
          • acquire lock
          • get lock status
          • release lock
        • Logging
          • put message to log file
          • put debug message to log file
          • put info message to log file
          • put warning message to log file
          • put error message to log file
          • put critical message to log file
          • get records from the controller log
          • rotate log file
          • get API call log
        • API keys
          • create API key
          • delete API key
          • list API key permissions
          • list API keys
          • regenerate API key
          • set API key permissions
        • User accounts
          • assign API key to user
          • create user account
          • delete user account
          • get user account info
          • list user accounts
          • set user password
          • List active session tokens
          • Drop session token(s)
        • Notifier management
          • disable notifier
          • enable notifier
          • get notifier configuration
          • list notifiers
          • restart notifier
        • File management
          • put file to runtime folder
          • set file exec permission
          • delete file from runtime folder
          • get file contents from runtime folder
        • Core scripts
          • List MQTT topics core scripts react on
          • Reload core scripts if some was added or deleted
          • Subscribe core scripts to MQTT topic
          • Unsubscribe core scripts from MQTT topic
        • Registry management
          • Safely purge registry database
      • UC UDP API
        • Basics
        • Batch commands
        • Encryption and authentication
        • Custom packets
      • LM API
        • API basics
          • JSON RPC
          • Direct API
        • LVar functions
          • clear - clear lvar state
          • decrement - decrement lvar value
          • groups - get item group list
          • increment - increment lvar value
          • reset - reset lvar state
          • set - set lvar state
          • state - get lvar state
          • state_history - get item state history
          • state_log - get item state log
          • toggle - toggle lvar state
        • LVar management
          • list - list lvars
          • create - alias for create_lvar
          • create_lvar - create lvar
          • destroy - alias for destroy_lvar
          • destroy_lvar - delete lvar
          • get_config - get lvar configuration
          • list_props - list lvar properties
          • save_config - save lvar configuration
          • set_prop - set lvar property
        • Decision matrix rules
          • create_rule - create new rule
          • destroy_rule - delete rule
          • get_rule - get rule information
          • list_rule_props - list rule properties
          • list_rules - get rules list
          • set_rule_prop - set rule parameters
        • Logic cycles
          • create_cycle - create new cycle
          • destroy_cycle - delete cycle
          • get_cycle - get cycle information
          • groups_cycle - get cycle groups list
          • list_cycle_props - get cycle configuration properties
          • list_cycles - get cycle list
          • reset_cycle_stats - reset cycle statistic
          • set_cycle_prop - set cycle property
          • start_cycle - start cycle
          • stop_cycle - stop cycle
        • Logic macros
          • create_macro - create new macro
          • destroy_macro - delete macro
          • get_macro - get macro information
          • groups_macro - get macro groups list
          • list_macro_props - get macro configuration properties
          • list_macros - get macro list
          • result - macro execution result
          • run - execute macro
          • set_macro_prop - set macro configuration property
        • Macro extensions
          • get_ext - get loaded extension information
          • list_ext - get list of available macro extensions
          • list_ext_mods - get list of available extension modules
          • load_ext - load extension module
          • modhelp_ext - get extension usage help
          • modinfo_ext - get extension module info
          • set_ext_prop - set extension configuration property
          • unload_ext - unload macro extension
        • Remote controllers
          • append_controller - connect remote UC via HTTP
          • disable_controller - disable connected controller
          • enable_controller - enable connected controller
          • get_controller - get connected controller information
          • list_controller_props - get controller connection parameters
          • list_controllers - get controllers list
          • list_remote - get a list of items from connected UCs
          • reload_controller - reload controller
          • remove_controller - disconnect controller
          • set_controller_prop - set controller connection parameters
          • test_controller - test connection to remote controller
          • upnp_rescan_controllers - rescan controllers via UPnP
        • Scheduled jobs
          • create_job - create new job
          • destroy_job - delete job
          • get_job - get job information
          • list_job_props - list job properties
          • list_jobs - get jobs list
          • set_job_prop - set job parameters
      • LM RESTful API
        • RESTful API basics
          • Requests
          • Responses
          • Long API calls
        • General functions
          • test API/key and get system info
          • save database and runtime configuration
          • Clear language cache
          • check access to the particular item
          • execute a remote system command
          • get list of loaded core plugins
          • install a package
          • shutdown the controller
          • switch debugging mode
          • log in and get authentication token
          • log out and purge the authentication token
          • Set token read-only
          • Get neighbor clients
        • LVar functions
          • clear lvar state
          • decrement lvar value
          • get item group list
          • get item state history
          • get item state log
          • get lvar state
          • increment lvar value
          • reset lvar state
          • set lvar state
          • toggle lvar state
        • LVar management
          • list lvars
          • create lvar
          • delete lvar
          • get lvar configuration
          • list lvar properties
          • save lvar configuration
          • set lvar property
        • Decision matrix rules
          • create new rule
          • delete rule
          • get rule information
          • get rules list
          • list rule properties
          • set rule parameters
        • Logic cycles
          • create new cycle
          • delete cycle
          • get cycle configuration properties
          • get cycle groups list
          • get cycle information
          • get cycle list
          • reset cycle statistic
          • set cycle property
          • start cycle
          • stop cycle
        • Logic macros
          • create new macro
          • delete macro
          • execute macro
          • get macro configuration properties
          • get macro groups list
          • get macro information
          • get macro list
          • macro execution result
          • set macro configuration property
        • Macro extensions
          • get extension module info
          • get extension usage help
          • get list of available extension modules
          • get list of available macro extensions
          • get loaded extension information
          • load extension module
          • set extension configuration property
          • unload macro extension
        • Remote controllers
          • connect remote UC via HTTP
          • disable connected controller
          • disconnect controller
          • enable connected controller
          • get a list of items from connected UCs
          • get connected controller information
          • get controller connection parameters
          • get controllers list
          • reload controller
          • rescan controllers via UPnP
          • set controller connection parameters
          • test connection to remote controller
        • Scheduled jobs
          • create new job
          • delete job
          • get job information
          • get jobs list
          • list job properties
          • set job parameters
        • CVARs
          • get the value of user-defined variable
          • set the value of user-defined variable
        • Locking functions
          • acquire lock
          • get lock status
          • release lock
        • Logging
          • put message to log file
          • put debug message to log file
          • put info message to log file
          • put warning message to log file
          • put error message to log file
          • put critical message to log file
          • get records from the controller log
          • rotate log file
          • get API call log
        • API keys
          • create API key
          • delete API key
          • list API key permissions
          • list API keys
          • regenerate API key
          • set API key permissions
        • User accounts
          • assign API key to user
          • create user account
          • delete user account
          • get user account info
          • list user accounts
          • set user password
          • List active session tokens
          • Drop session token(s)
        • Notifier management
          • disable notifier
          • enable notifier
          • get notifier configuration
          • list notifiers
          • restart notifier
        • File management
          • put file to runtime folder
          • set file exec permission
          • delete file from runtime folder
          • get file contents from runtime folder
        • Core scripts
          • List MQTT topics core scripts react on
          • Reload core scripts if some was added or deleted
          • Subscribe core scripts to MQTT topic
          • Unsubscribe core scripts from MQTT topic
        • Registry management
          • Safely purge registry database
      • SFA API
        • API basics
          • JSON RPC
          • Direct API
        • Item functions
          • action - create unit control action
          • action_toggle - toggle unit status
          • disable_actions - disable unit actions
          • enable_actions - enable unit actions
          • groups - get item group list
          • kill - kill unit actions
          • q_clean - clean action queue of unit
          • result - get action status or macro run result
          • state - get item state
          • state_history - get item state history
          • state_log - get item state log
          • terminate - terminate action execution
          • clear - clear lvar state
          • decrement - decrement lvar value
          • increment - increment lvar value
          • reset - reset lvar state
          • set - set lvar state
          • toggle - clear lvar state
        • Logic cycles
          • get_cycle - get cycle information
          • groups_cycle - get cycle groups list
          • list_cycles - get cycle list
        • Logic macros
          • groups_macro - get macro groups list
          • list_macros - get macro list
          • run - execute macro
        • Supervisor functions
          • supervisor_lock - set supervisor API lock
          • supervisor_unlock - clear supervisor API lock
          • supervisor_message - send broadcast message
        • Remote controllers
          • append_controller - connect remote controller via HTTP
          • disable_controller - disable connected controller
          • enable_controller - enable connected controller
          • get_controller - get connected controller information
          • list_controller_props - get controller connection parameters
          • list_controllers - get controllers list
          • list_remote - get a list of items from connected controllers
          • matest_controller - test management API connection to remote controller
          • reload_controller - reload controller
          • remove_controller - disconnect controller
          • set_controller_prop - set controller connection parameters
          • test_controller - test connection to remote controller
          • upnp_rescan_controllers - rescan controllers via UPnP
        • Connected clients
          • notify_restart - notify connected clients about server restart
          • reload_clients - ask connected clients to reload
      • SFA RESTful API
        • RESTful API basics
          • Requests
          • Responses
          • Long API calls
        • General functions
          • test API/key and get system info
          • save database and runtime configuration
          • Clear language cache
          • check access to the particular item
          • execute a remote system command
          • get list of loaded core plugins
          • install a package
          • shutdown the controller
          • switch debugging mode
          • log in and get authentication token
          • log out and purge the authentication token
          • Set token read-only
          • Get neighbor clients
        • Item functions
          • clean action queue of unit
          • create unit control action
          • disable unit actions
          • enable unit actions
          • get action status or macro run result
          • get item group list
          • get item state
          • get item state history
          • get item state log
          • kill unit actions
          • terminate action execution
          • toggle unit status
          • clear lvar state
          • clear lvar state
          • decrement lvar value
          • increment lvar value
          • reset lvar state
          • set lvar state
        • Logic cycles
          • get cycle groups list
          • get cycle information
          • get cycle list
        • Logic macros
          • execute macro
          • get macro groups list
          • get macro list
        • Supervisor functions
          • set supervisor API lock
          • clear supervisor API lock
          • send broadcast message
        • Remote controllers
          • connect remote controller via HTTP
          • disable connected controller
          • disconnect controller
          • enable connected controller
          • get a list of items from connected controllers
          • get connected controller information
          • get controller connection parameters
          • get controllers list
          • reload controller
          • rescan controllers via UPnP
          • set controller connection parameters
          • test connection to remote controller
          • test management API connection to remote controller
        • Connected clients
          • ask connected clients to reload
          • notify connected clients about server restart
        • CVARs
          • get the value of user-defined variable
          • set the value of user-defined variable
        • Locking functions
          • acquire lock
          • get lock status
          • release lock
        • Logging
          • put message to log file
          • put debug message to log file
          • put info message to log file
          • put warning message to log file
          • put error message to log file
          • put critical message to log file
          • get records from the controller log
          • rotate log file
          • get API call log
        • API keys
          • create API key
          • delete API key
          • list API key permissions
          • list API keys
          • regenerate API key
          • set API key permissions
        • User accounts
          • assign API key to user
          • create user account
          • delete user account
          • get user account info
          • list user accounts
          • set user password
          • List active session tokens
          • Drop session token(s)
        • Notifier management
          • disable notifier
          • enable notifier
          • get notifier configuration
          • list notifiers
          • restart notifier
        • File management
          • put file to runtime folder
          • set file exec permission
          • delete file from runtime folder
          • get file contents from runtime folder
        • Core scripts
          • List MQTT topics core scripts react on
          • Reload core scripts if some was added or deleted
          • Subscribe core scripts to MQTT topic
          • Unsubscribe core scripts from MQTT topic
        • Registry management
          • Safely purge registry database
      • API Clients
        • EVA JS Framework
        • API client for Python
          • API classes for Python
          • API initialization
          • API function call
          • API result codes
        • JSON RPC API client
          • Installing
          • Usage example
          • API result codes
    • 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
          • State event
          • API event
          • RPC event
          • Periodic event
          • MQTT event
          • System event
          • Setting up packages
        • Logging
        • Creating and managing core script files
        • Code examples
      • Physical interfaces for drivers
        • Required variables in a header
          • PHI info
          • PHI system info
          • PHI help
        • Classes and modules
        • Constructor
        • Primary methods
        • Parent methods
        • Optional methods
          • get_phi_ports
          • discover
        • Config validation
        • Working with unit values
        • Handling timeouts
        • Handling events
          • Incoming events
          • State push
          • SNMP traps
          • Schedule updates
        • 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
          • Performing get/set calls
          • SNMP MIBs
        • 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
          • Required variables in a header
          • Configuration variable
          • Exported functions
          • Classes and modules
          • Constructor
          • Persistent data
          • Exceptions
          • Config validation
          • Testing
      • 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
          • Item events
          • Log events
          • Special server events
          • Web socket heartbeat
        • Global heartbeat
        • Item state replication
          • Basics
          • State event handling
          • Processing of item states
        • 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
          • Items can be filtered by group
          • Item can not be filtered by group
      • 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
          • Customizing the mirror
          • Forcing “eva update” to download and install specified version
          • Manually applying the update
      • KB00009: Difference between “-s” and “-u” Cloud deploy options
        • Problem
        • Solution
      • KB00010: Item states are not synchronized in real-time via MQTT
        • Problem
        • Solution
          • Step 1
          • Step 2
          • Step 3
      • KB00011: Renaming EVA ICS nodes
        • Problem
        • Solution
          • EVA ICS 3.4.0 and above
          • EVA ICS 3.3.2 and below
      • KB00012: Running EVA ICS under restricted users
        • Problem
        • Solution
          • Detailed step-by-step guide
          • Automated solution
          • Starting EVA ICS during the system startup
      • 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
    • 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
  • 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
  • JavaScript Framework for EVA ICS
    • Installation
      • For web browsers
      • For Node.js
    • Examples
      • Initialization
      • Configuration
    • Watching states and performing API calls
    • Calling API methods
    • Bulk API calls
    • Setting intervals
    • Handling events
    • Class variables
      • API and Authentication
      • Item processing, special
      • Read-only
    • Framework functions
    • Server custom variables (EVA ICS v3)
    • QR code for evaHI-based apps
    • QR code for OTP
    • Multi-page interfaces, external authentication
      • Primary page
      • Secondary pages
    • Authentication with front-end server
  • 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
  • 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
  • Commons
    • Sharing terminal sessions
      • Setup
        • Automatic
        • Manual
      • Usage
      • Security
      • Issues
  • The Trademarks
    • The Trademark Supervisors
    • Usage Conditions
      • Common conditions
      • Direct usage
      • Indirect usage
        • Correct examples
        • Incorrect examples
      • Fair usage
BMA InfoSys
  • EVA ICS v4
  • Software Development Kit (SDK)
  • Rust SDK examples

Rust SDK examples

  • A simple service in Rust
  • Extending HMI with X calls in Rust

© Copyright 2022, Bohemia Automation / Altertech. Revision 30e5b184.

Read the Docs v: actual
Versions
actual
Downloads
html
On Read the Docs
Project Home
Builds