Advertisement

Quick Links

DLI EPCDC32 User's Guide
1.15.8.0

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the EPCDC32 and is the answer not in the manual?

Questions and answers

Summary of Contents for DLI EPCDC32

  • Page 1 DLI EPCDC32 User’s Guide 1.15.8.0...
  • Page 2 19 Resetting settings to defaults 20 Specifications 21 Open source code 22 Technical support 23 Limited five year warranty Index 1 Overview Congratulations on selecting the DLI DC32 Power Controller, an IP-controlled high-power DC switch. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 3 It can be configured to: • ping other devices and take action if they don't respond; • send notifications when certain events occur; DLI EPCDC32 utility functions include: • monitoring and logging data from miscellaneous sensors; • reading the system log •...
  • Page 4: Product Features

    • DLI EPCDC32 \productPackageAnnotation. \productPackageAccessories • RP-SMA WiFi Antenna. Please contact the freight carrier immediately if your package appears opened or damaged in transit. Call DLI at (408) 330-5599 for tech support, service, and hardware upgrades. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 5: Basic Setup And Use

    IP, such as 192.168.0.50. 4.3.1 Windows IP setup Before adding an IP, close all programs and browsers. After the link is established, you can enable DHCP. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 6 • In the search box on the taskbar, type control panel, and then select it. • Select Network and Sharing Center. • Change Adapter Settings. • Right click on your connected network and select Properties. • Proceed to step 2 DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 7 9. Press the "Add" button; this new IP is added the list. 10. Close all windows for the configuration to take effect. 11. Start your Browser and type 192.168.0.100 in the URL field. The default user name and password are "admin" (lower case) and "1234". DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 8: Basic Switch Operation

    Note that in this and many other pages, logical blocks can be collapsed by clicking in their right-hand corner, and later expanded by clicking 4.6 Common page layout You can navigate the menu links to access the controller's features: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 9: Lcd And Keypad

    Browser logout is automatic when a session is closed or after a time-out period. You can use a menu link to log-out in advance. 5 LCD and keypad The LCD has 2 lines, 16 character positions each. The displayed data depends on the mode, and possibly also on user scripting. The keypad has 5 keys: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 10 • (OFF). During normal operation, the EPCDC32 LCD and keypad interface can be in one of the following modes: • Outlet mode, which displays status of and allows to manipulate the unit's outlets; • Meter mode, which allows to read measurements of the EPCDC32 meters ;...
  • Page 11: Meter Mode

    0.0.0.0 (none) LAN MAC 7C:E1:FF:..:..:.. WiFi enabled Yes/No WiFi SSID String DLI..WiFi mode Access Point/Station Access point WiFi encryption None/WPA/WPA2 WiFi key Random string WiFi channel Channel number or auto WiFi protocol Static/DHCP Static DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 12: Setup Page

    . You can cancel editing at any time by pressing 6 Setup page The setup page allows the administrator to configure the power controller. These settings are supported: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 13 A delay of 60 seconds is suggested for server applications. You may also enter a screen refresh delay in this section. If "Enable screen refresh" is checked, and a delay value is entered, your browser should periodically update the status screen. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 14 You may link to other power controllers, your own web pages, or remote web sites by entering up to four URLs and descriptions in the Setup page. For example, enter "Site Two Power Controller" in the description field with a URL of "http://192.168.0.250/". These links appear on every page of the main web UI. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 15: Network Settings

    For persistent storage, you can configure the unit to send the system log to a syslog server. All messages, regardless of severity, are sent; the receiver is expected to do the filtering. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 16 DNS servers; rather, after the unit obtains a DHCP lease, the parameters will be displayed for reference. It is recommended to configure the DHCP server to provide a static lease for the EPCDC32 using its MAC address (also displayed).
  • Page 17 You may press the "protect" button to lock the network settings (this will also affect the external API settings). Once locked, the network settings cannot be changed except by pressing the physical reset button on the front of the unit. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 18 Notice the outlet numbering difference for non-administrative users vs the previous generations of EPCR/LPC con- trollers. In EPCDC32, non-administrative users see all outlets accessible to them numbered consecutively starting from 1; previously the indices used to match those seen by the administrator. Naive outlet state manipulation links like http://192.168.0.100/outlet?3=ON...
  • Page 19 This may be a convenience, but also a possible security issue. 6.7 HTTPS certificate generation and renewal HTTPS clients rely on certificates to ensure the server's identity. Operating as an HTTPS server, the EPCDC32 is capable of generating self-signed certificates or obtaining certificates from third parties, such as certificate authori- ties (CAs).
  • Page 20 HTTPS certificate settings Identity of the server is protected by a private key, which must be kept secret. EPCDC32 currently supports RSA private keys only; the number of bits can be configured. A key is generated by default; you can create a new one by pressing the "Generate"...
  • Page 21 Unlike the key, a certificate is public, not secret, and assures that its holder indeed is the entity it claims to be as long as the client trusts the certificate's issuer. To configure what your EPCDC32 claims to be, the following certificate signing request (CSR) fields need to be filled: •...
  • Page 22: Miscellaneous Settings

    Let's Encrypt, Buypass, ZeroSSL and others. The current implementation only supports the http-01 challenge, so the EPCDC32 (or the network it is on) needs to be configured so that HTTP requests to the names and addresses specified and port 80 are routed to the unit's HTTP port.
  • Page 23: Hardware Requirements

    On its own, a power switch isn't very smart. Programmers can easily add custom functionality by using the built-in Lua-based scripting language in power controllers. 7.1 Hardware requirements Lua-based scripting is available in all EPCDC32 controllers. Beeper, backlight, LCD, voltage and current monitoring functions are limited to products with appropriate hardware installed. 7.2 Configuration...
  • Page 24 Local functions declared this way must be placed before any function that uses it. If you want to move the definition elsewhere and don't need to call the function before the definition, you can use the following structure: local my_internal_function ... functions that use my_internal_function in bodies ... function my_internal_function() ... statements go here ... DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 25 (such actions cannot be taken at script load time). 7.4 Snippets Snippets are script fragments not part of the main script, stored for later use or shipped with the device. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 26 ... statements go here ... and then start it with the web UI, its origin is the "my_function" string. Threads created by other threads inherit their parent's origin, which can be useful when stopping a group of threads. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 27 — serial number; – — firmware version; – — system time/date; – — MAC address of the power controller; – — IP address of the power controller; – — IP network mask; – — IP gateway; DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 28 This extension is only available in the user scripting environment at the moment (i.e. not in OS-level scripts notification rules or sinks). Additionally, points to the sandbox environment. Unlike most APIs, core Lua functions are available in the global context. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 29 1 on at 8:00 and off at 17:00. while true do local event=wait_until({hour=8,min=0},{hour=17,min=0}) if event==1 then ON(1) else -- event==2 OFF(1) delay (120) We match with minute precision here and wait for 2 minutes to avoid double matching. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 30 "this" "earliest" "latest" , indicating which thread(s) should be killed if their count is above the limit (it's possible to specify an array of values, like {"this","latest"} , instead). DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 31 In the example below, if you create several threads using thread_creator , they will all reference the same instances of local_var global_ local local_var=0 global_var=0 function thread_fn() while true do local_var=local_var+1 global_var=global_var+1 function thread_creator() for i=1,10 do thread.run(thread_fn) DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 32 , which might be init_sticky thread_creator inconvenient. Alternatives include setting default values, if they are not nil, on entry to functions that use the values: function thread_fn() sticky.local_var=sticky.local_var or 0 sticky.global_var=sticky.global_var or 0 while true do sticky.local_var=sticky.local_var+1 sticky.global_var=sticky.global_var+1 DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 33 . Only numbers, strings and booleans can be stored (or nil can be written to erase a value). Some of these limitations may be raised in future. All keys of persistent can be enumerated if necessary using pairs() DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 34 • meter.values[key].custom : boolean indicating if the value is custom (user-defined); • meter.values[key].bus : always nil for EPCDC32; • meter.values[key].internal : boolean indicating if the value is internal (and should not appear in the web UI); • : function which can be called to obtain historical data points.
  • Page 35 : maximum consecutive reboot count; autoping.max_consecutive_reboot_count • : pings before enabling; autoping.pings_before_enabling • autoping.resume_without_retrial : activate enabled entries immediately when service is re- stored; • autoping.handle_failures_immediately : handle explicit failures immediately instead of waiting for timeout. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 36 For example, the following code event.send("coil 1 energized",{coil_index=1,coil_state=true}) will send an event that can be matched by, among others, the following notification rules: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 37 . Additionally, objects may not receive change notifications for properties you haven't previously read or written. The following example function can be used to attempt to mirror physical state of outlet 1 to outlet 2: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 38 UTC time with event.utc_time which has no corresponding wait_until option. Events have a timestamp and a property table as components; the property table contains the following fields: • index : the condition's number in the argument list; DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 39 You can also just use thread.kill if you don't need the looping thread at all any longer. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 40 • , in which case the child process receives /dev/null for that descriptor; or DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 41 SIGSTOP • "usr1" or "usr2": the SIGUSR1 SIGUSR2 signals, which can be handled by the process in an application- specific way but but result in process termination by default. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 42 To help that, util.json.encode accepts an optional second argument, which is an "empty array table", that is, a table with keys corresponding to empty Lua tables in the input which represent empty JSON arrays. For example, DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 43 It could be implemented as: util.argunpack=function(tbl) return unpack(tbl,1,tbl.n) In combination, util.argpack util.argunpack allow perfect function argument forwarding in presence arguments. Unlike most APIs, utility functions are available in the global context. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 44 • sink_or_options.sink , if set to a function, specifies the function to be called with each line of the dump, like explained above. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 45: Event Notification

    • SNMPv1, SNMPv2c and SNMPv3 TRAPs; • SNMPv2c and SNMPv3 INFORMs; • webhook. Regardless of the medium type, notifications are inherently asynchronous; you should not rely on a particular ordering of messages sent. Notification is based on the programming language. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 46 (lowercase) string describing it, e.g. ; it is intended for use in severity_string(CRIT) == "critical" generating notification message texts. core Lua functions are accessible from the context as well, should you need them. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 47 • username (for authenticating to the server); • password (for authenticating to the server); • transport encryption: – "smtps" for SMTP wrapped completely in TLS; – "starttls" for SMTP+STARTTLS command; – "" (the empty string) for no encryption. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 48 • SNMPv2c TRAPs and INFORMs; • SNMPv3 TRAPs and INFORMs. The difference between a TRAP and an INFORM is that an INFORM requires confirmation of receipt. Thus, the target test function can tell if the message has been delivered. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 49 Its OID is 1.3.6.1.4.1.45770.0.1; this can be specified directly for SNMPv2c or SNMPv3, or as an enterprise-specific (generic trap type=6) DLI ("enterprise OID"=45770) trap #1 (specific trap type=1). Security settings SNMPv1 and SNMPv2c use the 'community' security model which essentially identifies users by a shared secret which is sent over the network in plain text ('public' and 'private' being the most popular 'secrets').
  • Page 50 • community string (the shared secret for authentication to server), • trap OID (string) SNMP v2c TRAPs and INFORMs accept an snmp_trap_oid event property to override the trap OID; it must be a string. They also accept the snmp_values event property as described above. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 51 In general, recipient URLs must contain regular public IP addresses, or hostnames which resolve to them. In particular, the following IPv4 ranges are prohibited from use due to possible security implications: 0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.0.0.0/24 192.0.2.0/24 198.51.100.0/24 203.0.113.0/24 192.88.99.0/24 192.168.0.0/16 198.18.0.0/15 224.0.0.0/4 240.0.0.0/4 255.255.255.255/32 DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 52 CA root certificates (it may point to a single file listing all of them, or to a directory containing the certificate files in OpenSSL format, and defaults to /etc/ssl/certs DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 53: Notification Rules

    This is notably distinct from a condition, which will match all false not auth_allowed sorts of messages which don't have an auth_allowed property. Tricks which allow running code in the condition (as opposed to the action) are possible but discouraged. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 54: Notification Event Types

    Custom logo dimensions may be supplied if needed. The logo URL may be absolute or relative (e.g. /my_ ), in which case the related file should be placed in the subdirectory of the unit's company.png /www/static/ filesystem (probably via SSH). Company name affects the alternative text for the logo image. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 55: Measurement Units

    Allow CoAP over WebSockets for non-admin users: Enable UPnP service: Enable SNMP service: Enable MQTT client: Enable Modbus/TCP slave: Relax non-HTML method CSRF checks: Relax non-HTML content type CSRF checks: Submit Common external API settings DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 56 "non-percent-encoded" (special) counterparts, and are otherwise interpreted as "percent-encoded" (regular), when mapping a Uri-Path segment to the RFC3986 URI path fragment. This affects the following characters: • sub-delims: "!" "$" "&" "'" "(" ")" " " "+" "," ";" "=" DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 57 <uom/path> <value> Use a '-' instead of the last path element for specifying "the element position after the last one" (i.e. appending to an array): uom insert config/links/- '{"href":"http://example.com/","description":"Example link"}' DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 58 If you maintain nontrivial command-line scripts, you may want to store them under the directory, which /storage is reserved for the unit administrator and is persisted across upgrades. Refer to the REST-style API reference for details. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 59 DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 60 Note that attempts to change a table after it has been assigned to an object model field or inserted into an object model container will not work as expected: local uom=require("uom") local link={href="http://example.com/",description="Example link"} uom.insert(uom.config.links,link) link.href="http://bad.example.com/" -- Don't do this It is possible to partially dump objects you don't have full access to, for instance: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 61 Lua empty table encoding ambiguity (i.e. should a particular be encoded as a JSON array or an object). For instance, local array={} local object={} print(uom.json.encode({array,object},{[array]=true})) produces the output: [[],{}] and the script: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 62 Additionally, containers support "add", "remove" and "list" methods. The "describe" method can be used to output a type description for the object (similar to the REST API "description" relative URI). DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 63: Upnp Settings

    ('.'). A leading dot may be used to emphasize that it's an absolute OID; however, all of the OIDs configurable in EPCDC32 are absolute unless otherwise stated explicitly, and the leading dot is not needed, therefore, it's not supported.
  • Page 64 In this example, requests with the 'private' community string will be serviced as though they were made by the 'powerAdmin' user if they come from the 192.168.0.x subnet, and denied otherwise. Likewise, requests with the 'public' community string coming from the same subnet will be served as the 'powerReader' user. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 65 10.9 SNMP extensions The Net-SNMP agent included in EPCDC32 has built-in support for several well-known MIBs, e.g. the System group (RFC 3418) with the root at 1.3.6.1.2.1.1, enabling access to which may be required for integrating with management stations. Its elements, e.g. system name, location and contact, are configured in Network settings section.
  • Page 66 (see the Lua library description above). local snmp_pass_persist = require("snmp_pass_persist") local server server = snmp_pass_persist.make_server({...tree...}, {...props...}) -- You may configure OID tree caching here, e.g. -- server.enable_cache() snmp_pass_persist.run() server.shutdown() DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 67 • the assigned (expected) power states can be manipulated in the eoPowerAdminState (1.3.6.1.2.1. 229.1.2.1.8) table; • supported power states are ieee1621Off (257) and ieee1621On (259) only Additionally, among others, the following potentially useful parts of the above MIB are implemented: • eoPowerStateTotalTime; • eoPowerStateEnterCount. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 68 'Minimal' to interact with the device using SNMPv2c and SNMPv1, or use SNMPv3 instead, which is the recommended and more secure alternative. 10.11 SNMP sample commands These examples assume you have your EPCDC32 at 192.168.0.100 with SNMPv3 user powerAdmin configured...
  • Page 69 Note that the SNMP utilities mentioned are available as packages. 10.12 MQTT API MQTT is an event-oriented protocol with a centralized publish/subscribe model, which makes it a bit awkward to use for controlling devices; however, an implementation is included due to its popularity. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 70 MQTT client is disabled or the broker address is changed; • the Last Will and Testament is a message that will be sent by the broker to notify you if the EPCDC32 unexpectedly goes offline.
  • Page 71 MQTT payload format is not defined by a standard, so we explicitly define it here. Everything that can be controlled via MQTT in EPCDC32 is an outlet state, which can be ON or OFF. We encode ON as '1' (the single ASCII character '1') and OFF as '0'.
  • Page 72 These examples assume you have an MQTT broker at 192.168.0.5, it doesn't require authentication and you have the EPCDC32 set up like shown on screenshots above. You'll need the mosquitto MQTT client to run these samples; analogous commands should be available for other clients.
  • Page 73 (see the Lua service library description above). ua.dump() function is a convenience wrapper around the `dump` library, having similar semantics but with defaults specialized to handle various OPC UA objects. It is useful for finding your way through the data model. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 74 -- Import the library local ua = require("opcua") -- Create the server local server = ua.make_server() -- Create a proxy to the root object of the server local root = ua.make_proxy(server) -- Dump the proxy ua.dump(root, print) DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 75 Other Lua values are not considered to represent OPC UA values in absence of a context, and attempts to pass them to OPC UA will cause an error. Note that OPC UA arrays must always be represented in the fully unambiguous representation (a plain table with ua.data_type ua.array_dimensions keys). DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 76 Every time you index a proxy with a browseName -like key and the appropriate child node exists, a new proxy is created; all such proxy objects are distinct and do not compare equal; for instance, if you have: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 77 [ua.const.attribute_id.VALUE] = "A string value", [ua.const.attribute_id.DATATYPE] = ua.ns0.encode_numeric_id(12) --[[NodeId ns=0,i=12]], [ua.const.attribute_id.VALUERANK] = ua.const.value_rank.SCALAR, [ua.const.attribute_id.ARRAYDIMENSIONS] = { [ua.array_dimensions] = false, [ua.data_type] = ua.ns0.encode_numeric_id(7) --[[NodeId ns=0,i=7]] [ua.const.attribute_id.ACCESSLEVEL] = 1, [ua.const.attribute_id.USERACCESSLEVEL] = 255, [ua.const.attribute_id.MINIMUMSAMPLINGINTERVAL] = 0.0, [ua.const.attribute_id.HISTORIZING] = false DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 78 Organizes Folder • to an ObjectType parent, – children are related by the relation, Method HasComponent – ObjectType children are related by the HasSubtype relation, – Object children are related by the HasComponent relation, DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 79 Instead of an OPC UA value, a Variable VALUE value can be a hook table. In this case, it has the shape can be one of the following: {read_hook, write_hook} read_hook • , meaning the value cannot be read; DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 80 ID or proxy keys and true values. Such an assignment results in the appropriate references being added and/or removed. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 81 ) or a plain {refType, isInverse, includeSubtypes, browseName} table. It is recommended that you use the proxy API instead. Please contact DLI for low-level API usage details if neces- sary. Custom OPC UA server configuration The configuration argument to ua.make_server()
  • Page 82: Modbus/Tcp Settings

    Modbus/TCP and scripting. The configuration can be done using scripting as well as the UI and REST-like APIs. Modbus/TCP scriptable discrete input configuration Name Index (0-based) Value Allow read running Submit Modbus/TCP custom discrete input settings DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 83: Backing Up And Restoring Settings

    • the unit serial number; • the unit firmware version. You may protect the security-sensitive parts of the configuration from being stored in a backup. Pressing the hardware reset button will be required to unlock. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 84 'keep' or 'overwrite' default action, uses the same action for all files and groups. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 85 "common" option enabled "on" option handle_failures_immediately "off" option max_consecutive_reboot_count "5" option max_reboot_count "10" option ping_interval "1" option ping_timeout "150" option pings_before_enabling "1" option post_reboot_delay "120" Custom resolution Resolve Cancel restore Backup file resolution DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 86: Firmware Upgrade

    Configure update process Beep during upgrade Blink during upgrade Preserve user-installed packages on upgrade Save Firmware update configuration page You may protect the current firmware from modification. Pressing the hardware reset button will be required to unlock. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 87 Post-firmware upgrade initialization indication 13 Date/time The Date / Time page allows the administrator to set the internal clock and time zone. The clock may be set within the browser or synchronized with an NTP server. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 88: Common Configuration

    Total times to attempt reboot: tries. (1-255, or 0 for no limit) Device reboot delay: seconds. (1-43200) Handle failures immediately instead of waiting for timeout: Activate enabled entries without trial on service restoration: Apply Common AutoPing settings DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 89 To actually use AutoPing, add one or more AutoPing targets (IP addresses) to the list. The button is used to remove a target from the list. Below is an example AutoPing configuration with four targets: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 90 You can select a scripting action to perform when the AutoPing item triggers (by default the selected outlets are cycled). The action must be a function defined in the scripting server, like function action_to_perform() or e.g. function action_to_perform(selected_outlets) DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 91 — this causes AutoPing to perform a HTTP/HTTPS GET request for the given URL, e.g. http://www.digital-loggers.com/index.html can be used to check that the web server is responding and can serve its main page. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 92: Energy Monitor

    Use the icon to toggle visibility of a plot or meter. The setting persists (unlike visibility of configuration blocks). Plots and meters can be configured in detail by clicking on them. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 93 "minimum value to display" setting is used. Sector 1 properties Name: Cold Maximum value: 273 Color: 0000FF Save Meter sector configuration The sector properties include: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 94 22:00 00:00 02:00 time Add plot Plots Clicking on a plot allows to configure it. Plot properties Title: Custom User Meter Width: Height: Save Basic plot configuration The basic meter properties include: • the title; DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 95 (which should be stricter than the soft limit), then the hard limit is obeyed. Several plot lines can be drawn on the same plot (they don't have to be proper lines but may have various shapes, see below). DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 96 (time). If spline interpolation is requested and it fails, the line is plotted using Bezier curves instead. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 97 The exception is the lowest interval which has no threshold point (but still has a level and a period). The "none" value is considered so distinct from all regular values that no hysteresis is possible, so it is also characterized by a level and a period only. The above sample configuration might look like this: DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 98 16 User-installable packages Installing third-party packages allows the administrator to improve connectivity and simplify administration of the controller. 16.1 Obtaining package lists To download the lists of packages available for installation, run: # opkg update DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 99: Configuration Storage

    Package versions in the DLI repository are directly linked to the firmware version; on an upgrade, the version of the re-downloaded manually installed package will match the new firmware version. 16.3 WireGuard-based VPNs Several modern VPN packages based on WireGuard are available, which provide encrypted mesh networking.
  • Page 100 Please do the SSO login in your browser. If your browser didn't open automatically, use this URL to log in: https://login.netbird.io/activate?user_code=ABCD-EFGH This should get your device online. Check with # ifconfig wt0 Refer to NetBird documentation for self-hosting. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 101 # opkg install innernet Innernet coordination server needs to be hosted on a node with a public IP. If you wish to run the coordination server on a DLI unit, instead run: # opkg install innernet-server It's important that the two above packages are mutually exclusive:...
  • Page 102 EtherIP, L2TPv3, Cisco VPN Routers and MS-SSTP VPN. Install the components you need: # opkg install softethervpn-server and/or # opkg install softethervpn-client and/or # opkg install softethervpn-bridge 16.6.2 Mikrotik EoIP tunnel support eoip package can create ethernet tunnels compatible with Mikrotik EoIP tunnel: # opkg install eoip DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 103 # opkg install openssh-server 16.9 MQTT-related packages To install the Mosquitto MQTT broker, run: # opkg install mosquitto If you're interested in sending and receiving MQTT messages from the command line, run: # opkg install mosquitto-client DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 104: Domain Name Resolution

    # opkg install screen 16.13 Terminal session recording The traditional script scriptreplay utilities are available in the script-utils package: # opkg install script-utils DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 105: System Log

    The following operations available to the administrator pose an increased risk and can be protected: • changing administrator credentials; • changing networking settings; • changing notification settings; • backing up private settings (passwords, keys, etc.); • restoring settings from backup; • upgrading firmware; • entering maintenance mode. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 106 , or short presses of the reset button, to select a reset mode. A description of the currently selected mode is displayed on the second LCD line. The following reset modes are available: 1. Clear lock bits: Clear protection bits only. Other settings are preserved. DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 107: Specifications

    Software Con- trols Individual outlets on/off , all on/off /cycle. Net settings, Web UI /td td Size (Single-Pack Carton) 2.4x7.7x15.8" Weight (bare) Single unit 3.6 lbs excl. cord & packaging. WiFi Atheros 9331 2.4G 802.11n RP-SMA DLI EPCDC32 User’s Guide: 1.15.8.0...
  • Page 108: Open Source Code

    Purchasing a TLA and signing an NDA from Atheros are highly recommended before attempting any custom devel- opment; however, they aren't required to build the firmware (only the bootloader). DLI cannot provide warranty or technical support for modified units; this includes units with custom firmware. 22 Technical support Please register.
  • Page 109: Limited Five Year Warranty

    DLI. DLI's entire liability and exclusive remedy as to defective hardware shall be, at DLI's option, either (a) return of the purchase price or (b) replacement or repair of the hardware that does not meet DLI's quality control standards and has been returned through proper RMA procedures. DLI's liability for repair or replacement is to DLI's customer ONLY.
  • Page 110 Index AutoPing, Backing up and restoring settings, Basic setup and use, Customization page, Date/time, Energy monitor, Event notification, External APIs, Firmware upgrade, LCD and keypad, Limited five year warranty, Locking down the controller, Open source code, Overview, Package contents, Product features, Resetting settings to defaults, Scripting, Setup page,...

Table of Contents