{"id":247,"date":"2023-03-22T07:17:33","date_gmt":"2023-03-22T07:17:33","guid":{"rendered":"https:\/\/www.firefly.ee\/?page_id=247"},"modified":"2023-04-11T20:44:20","modified_gmt":"2023-04-11T20:44:20","slug":"ffan-standard-os","status":"publish","type":"page","link":"https:\/\/www.firefly.ee\/home\/ffan-standard\/ffan-standard-os\/","title":{"rendered":"FFAN Standard &#8211; webUI"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">FFAN&#8217;s web user interface is a practical way to control the device and manage most common parameters and features. NB! WebUI\u00a0<strong>does not<\/strong>\u00a0have all the features and commands implemented. For precise and complete control use <a href=\"https:\/\/www.firefly.ee\/ffan-standard\/ffan-configuration-tool\/\" data-type=\"URL\" data-id=\"https:\/\/www.firefly.ee\/ffan-standard\/ffan-configuration-tool\/\" target=\"_blank\" rel=\"noreferrer noopener\">FFAN Configuration tool<\/a>! To access the webUI use your device&#8217;s IP address (<em><strong>TIP!<\/strong> Press menu button on device until network tab is displayed on integrated display, there you find your device IP address<\/em>) in your favorite web browser.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h1 class=\"wp-block-heading has-text-align-center\">webUI walkthrough<\/h1>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_login-461x1024.png\" alt=\"\" class=\"wp-image-255\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_login-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_login-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_login-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_login-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_login-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_login.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Login screen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">By default, webUI starts in unprotected admin mode which allows complete access to your device to anyone with access to that IP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want to restrict other users to only control through the webUI, go to &#8220;<em>Main menu -&gt; Configurations -&gt; Configure web server -&gt; Password<\/em>&#8220;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Doing so&nbsp;will set up a password that needs to be entered when trying to access webUI. This is a very thin layer of protection since everything is transmitted over unencrypted HTTP protocol.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\">Main menu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Main menu will be welcoming users after login. Here you can find all the available sub-menus and initiate device restart.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#anchor-information\" data-type=\"internal\" data-id=\"#anchor-information\">Information<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations\" data-type=\"internal\" data-id=\"#anchor-configurations\">Configurations<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-telemetry\" data-type=\"internal\" data-id=\"#anchor-telemetry\">Telemetry<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-outputs\" data-type=\"internal\" data-id=\"#anchor-outputs\">Outputs<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-inputs\" data-type=\"internal\" data-id=\"#anchor-inputs\">Inputs<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-statistics\" data-type=\"internal\" data-id=\"#anchor-statistics\">Statistics<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-console\">Console<\/a><\/li>\n\n\n\n<li>Logout (visible only if webUI password is set)<\/li>\n\n\n\n<li>Restart (will reboot device, after confirmation)<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_main_menu-461x1024.png\" alt=\"\" class=\"wp-image-256\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_main_menu-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_main_menu-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_main_menu-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_main_menu-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_main_menu-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_main_menu.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"283\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_info-283x1024.png\" alt=\"\" class=\"wp-image-253\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_info-283x1024.png 283w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_info-83x300.png 83w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_info-768x2779.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_info-424x1536.png 424w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_info-566x2048.png 566w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_info.png 1080w\" sizes=\"auto, (max-width: 283px) 100vw, 283px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-information\">Main menu -&gt; Information<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Information page will provide all the necessary information about device. For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Serial number<\/li>\n\n\n\n<li>Firmware info<\/li>\n\n\n\n<li>Manufacturer info<\/li>\n\n\n\n<li>Ethernet info (IP, MAC gateway, etc)<\/li>\n\n\n\n<li>MQTT server info (IP, port, topics, connection count, parent id, master\/slave hierarchy)<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-telemetry\">Main menu -&gt; Telemetry<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Telemetry page will serve you connected sensors readings. Every FFAN Standard has one onboard temperature sensor that provides internal temperature readings. All other senors are optional. Sensors supported by FFAN Standard:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>up to three DS18B20 temperature sensors via external connector<\/li>\n\n\n\n<li>one DHT22\/AM2302 temperature\/hygrometer (has dedicated place on top pcb where it can be soldered in)<\/li>\n\n\n\n<li>one&nbsp;BME280 environmental (temperature, barometric pressure&nbsp;and&nbsp;humidity) sensor&nbsp;(has dedicated place on top pcb where it can be soldered in)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>NB!<\/strong> Supports all those sensors at the same time. This means that all those sensor can be installed at once.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_tele-461x1024.png\" alt=\"\" class=\"wp-image-275\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_tele-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_tele-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_tele-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_tele-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_tele-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_tele.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_outputs-461x1024.png\" alt=\"\" class=\"wp-image-257\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_outputs-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_outputs-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_outputs-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_outputs-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_outputs-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_outputs.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-outputs\">Main menu -&gt; Outputs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Outputs page has controls that allow user to manipulate output ports individually or at once. Page will also provide visual state reference of every port.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TIP!<\/strong> Why is output toggle button disabled? Output port toggle button will be disabled if&#8230;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>output port is disabled<\/li>\n\n\n\n<li>output port does not have &#8220;<em>allow external state chang<\/em>e&#8221; flag set<\/li>\n\n\n\n<li>output port works in&nbsp;conjunction with one of the input ports (input port action &#8220;<em>output follow input<\/em>&#8220;)<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-inputs\">Main menu -&gt; Inputs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Inputs page will display current state of every input. Inputs colored red are disabled. Ports can be disabled\/enabled under configuration menu.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>HIGH &#8211; No input signal detected<\/li>\n\n\n\n<li>LOW &#8211; Input signal present<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_inputs-461x1024.png\" alt=\"\" class=\"wp-image-254\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_inputs-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_inputs-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_inputs-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_inputs-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_inputs-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_inputs.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_stats-461x1024.png\" alt=\"\" class=\"wp-image-274\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_stats-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_stats-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_stats-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_stats-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_stats-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_stats.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-statistics\">Main menu -&gt; Statistics<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This page displays statistics of FFAN Standard device. I.e. boot count and runtime.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-console\">Main menu -&gt; Console<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">webUI console displays events and enables option to control FFAN standard with ASCII text based commands.<\/p>\n\n\n\n<p class=\"has-small-font-size wp-block-paragraph\"><em>Click <a href=\"#anchor-console-command-examples\" data-type=\"internal\" data-id=\"#anchor-console-command-examples\">here<\/a><\/em> <em>to see full list of commands with explanations.<\/em><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">outputs 1 enable false<\/p>\n<cite>This example command will disable second (0 is first) output port.<\/cite><\/blockquote>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_console-461x1024.png\" alt=\"\" class=\"wp-image-252\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_console-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_console-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_console-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_console-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_console-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_console.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_config-461x1024.png\" alt=\"\" class=\"wp-image-251\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_config-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_config-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_config-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_config-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_config-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_config.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations\">Main menu -&gt; Configurations<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">List of configuration options and factory reset.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#anchor-configurations-ethernet\" data-type=\"internal\" data-id=\"#anchor-configurations-ethernet\">Configure ethernet<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-mqtt\" data-type=\"internal\" data-id=\"#anchor-configurations-mqtt\">Configure MQTT<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs\">Configure inputs<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs\">Configure outputs<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-webserver\" data-type=\"internal\" data-id=\"#anchor-configurations-webserver\">Configure web server \/ webUI<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-misc\" data-type=\"internal\" data-id=\"#anchor-configurations-misc\">Configure misc<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-emergency\" data-type=\"internal\" data-id=\"#anchor-configurations-emergency\">Configure emergency mode<\/a><\/li>\n\n\n\n<li>Build backup &#8211; Clicking on &#8220;Build backup&#8221;&nbsp; button will create a backup file that will be opened in new browser tab! Please copy all and save as text file. Use this &#8220;<a href=\"https:\/\/www.firefly.ee\/ffan-standard\/ffan-standard-os\/\">ffan_backup_restore<\/a>&#8221; tool to restore backup (download and unzip). Works with all modern web browsers. Another option for backup\/restore is to use dedicated software which you can find <a href=\"https:\/\/www.firefly.ee\/ffan-standard\/ffan-standard-os\/\">here<\/a><\/li>\n\n\n\n<li>Factory reset<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TIP!<\/strong> Did you knew, that factory reset can be initiated using button on front panel of the device. Do following: push and hold down UI button while pressing reset button. Wait for a while. A count down timer (set to 10 seconds) will appear on screen. Release UI button and press again to confirm.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-ethernet\">Main menu -&gt; Configurations -&gt; Ethernet<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ethernet configuration options.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>optain IP address manually or automatically<\/li>\n\n\n\n<li>ethernet reconnect interval<\/li>\n\n\n\n<li>maximum reconnect attempts per session (will be zeroed out after full power cycle)<\/li>\n\n\n\n<li>automatically restart after maximum reconnect attempts has been exhausted<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_ethernet-461x1024.png\" alt=\"\" class=\"wp-image-259\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_ethernet-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_ethernet-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_ethernet-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_ethernet-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_ethernet-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_ethernet.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"363\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_mqtt-363x1024.png\" alt=\"\" class=\"wp-image-268\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_mqtt-363x1024.png 363w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_mqtt-106x300.png 106w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_mqtt-768x2169.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_mqtt-544x1536.png 544w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_mqtt-725x2048.png 725w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_mqtt.png 1080w\" sizes=\"auto, (max-width: 363px) 100vw, 363px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-mqtt\">Main menu -&gt; Configurations -&gt; MQTT<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">MQTT connection parameters.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>server IP address<\/li>\n\n\n\n<li>server port<\/li>\n\n\n\n<li>client name (supports macros i.e. &lt;MAC&gt;). Device&#8217;s unique identifier, will be used to construct topic names<\/li>\n\n\n\n<li>server username<\/li>\n\n\n\n<li>server password<\/li>\n\n\n\n<li>root topic. Internally used as prefix while constructing topic names<\/li>\n\n\n\n<li>prodcast topic<\/li>\n\n\n\n<li>discovery topic<\/li>\n\n\n\n<li>status publish interval<\/li>\n\n\n\n<li>telemetry publish interval<\/li>\n\n\n\n<li>server reconnect interval<\/li>\n\n\n\n<li>ping interval<\/li>\n\n\n\n<li>parent MAC address<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\"><strong>Example of LWT payload:<\/strong>\n<span style=\"text-decoration: underline;\">Topic:<\/span>\n<em>   &lt;root&gt;\/&lt;mac&gt;\/LWT<\/em>\n<span style=\"text-decoration: underline;\">Payload:<\/span>\n<em>   Online or Offline<\/em><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\" style=\"text-decoration:none\"><strong>Example of discovery payload:<\/strong>\n<span style=\"text-decoration: underline;\">Topic:<\/span>\n<em>   &lt;root&gt;\/discovery<\/em>\n<span style=\"text-decoration: underline;\">Payload:<\/span>\n<em>   {\"SerialNo\":\"61ebe67cc7cea\",\"MAC\":\"DE07D6013C3A\",\"Manufact\":\"Firefly OY\",\"Model\":\"FFAN-standard-R2\",\"FWver\":\"FFANOS-1 (1.9)\",\"FWdate\":\"24.03.2023\",\"FriendlyName\":\"FFAN\",\"IPAddress\":\"172.16.1.120\"}<\/em><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\"><strong>Example of status payload:<\/strong>\n<span style=\"text-decoration: underline;\">Topic:<\/span>\n<em>   &lt;root&gt;\/&lt;mac&gt;\/STATUS<\/em>\n<span style=\"text-decoration: underline;\">Payload:<\/span>\n<em>   {\"status\":\"NORMAL\",\"IPAddress\":\"172.16.1.120\",\"UptimeSec\":\"2\", \"Uptime\":\"0000T00:00:02\",\"MqttCount\":\"1\"}<\/em><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\"><strong>Example of telemetry payload:<\/strong>\n<span style=\"text-decoration: underline;\">Topic:<\/span>\n<em>   &lt;root&gt;\/&lt;mac&gt;\/TELE<\/em>\n<span style=\"text-decoration: underline;\">Payload:<\/span>\n<em>   {\"DS18B20\":[{\"id\":\"0\",\"temp\":\"11.50\"},{\"id\":\"1\",\"temp\":\"1.00\"},{\"id\":\"2\",\"temp\":\"-127.00\"},{\"id\":\"3\",\"temp\":\"-127.00\"}],\"AM2302\":[{\"temp\":\"10.30\",\"hum\":\"48.30\",\"heatindex\":\"8.65\"}]}<\/em><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\"><strong>Example of prodcast payload:<\/strong>\n<span style=\"text-decoration: underline;\">Topic:<\/span>\n<em>   &lt;root&gt;\/prodcast<\/em>\n<span style=\"text-decoration: underline;\">Payload:<\/span>\n<em>   DE07D6013C3A STATUS 1 NORMAL<\/em><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\"><strong>Example of input events payload:<\/strong>\n<span style=\"text-decoration: underline;\">Topic:<\/span>\n   <em>&lt;root&gt;\/&lt;mac&gt;\/INPUTS\/EVENTS<\/em>\n<span style=\"text-decoration: underline;\">Payload:<\/span>\n<em>   {\"port\":\"0\",\"triggerType\":\"21\",\"changeCount\":\"1\",\"currentstate\":\"low\"}<\/em><\/pre>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-inputs\">Main menu -&gt; Configurations -&gt; Inputs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">List of available input ports. Each input port can be configured individually.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Front panel menu button<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 0<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 1<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 2<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 3<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 4<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 5<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 6<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-properties\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-properties\">Input 7<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-inputs-globalparam\" data-type=\"internal\" data-id=\"#anchor-configurations-inputs-globalparam\">Input ports global parameters<\/a><\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_list-413x1024.png\" alt=\"\" class=\"wp-image-264\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_list-413x1024.png 413w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_list-121x300.png 121w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_list-768x1903.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_list-620x1536.png 620w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_list-827x2048.png 827w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_list.png 1080w\" sizes=\"auto, (max-width: 413px) 100vw, 413px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_prop-461x1024.png\" alt=\"\" class=\"wp-image-265\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_prop-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_prop-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_prop-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_prop-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_prop-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_prop.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-inputs-properties\">Main menu -&gt; Configurations -&gt; Inputs -&gt; Properties<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Input port properties.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Port alias (port name to make things more human readable)<\/li>\n\n\n\n<li>Port availability: disabled or enabled<\/li>\n\n\n\n<li>Port type:\n<ul class=\"wp-block-list\">\n<li>None<\/li>\n\n\n\n<li>Button<\/li>\n\n\n\n<li>Button inverted<\/li>\n\n\n\n<li>Switch<\/li>\n\n\n\n<li>Emergency<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-inputs-trigger\">Main Menu -&gt; Configurations -&gt; Inputs -&gt; Trigger<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Input port trigger.&nbsp;Trigger is what starts the processing of an action.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>List of triggers while input type is <strong>button<\/strong> or <strong>button inverted<\/strong>:\n<ul class=\"wp-block-list\">\n<li>None<\/li>\n\n\n\n<li>On press<\/li>\n\n\n\n<li>After one press<\/li>\n\n\n\n<li>On set amount of presses<\/li>\n\n\n\n<li>On set amount of presses or on timeout<\/li>\n\n\n\n<li>Must be pressed for set amount of time<\/li>\n\n\n\n<li>After timeout<\/li>\n\n\n\n<li>Delay after one press<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>List of triggers while input type is&nbsp;<strong>switch<\/strong>:\n<ul class=\"wp-block-list\">\n<li>None<\/li>\n\n\n\n<li>On every state change<\/li>\n\n\n\n<li>On set amount of state changes<\/li>\n\n\n\n<li>On set amount of state changes or on timeout<\/li>\n\n\n\n<li>Must hold state for set amount of time<\/li>\n\n\n\n<li>Delay after one state change<\/li>\n\n\n\n<li>State change from low to high<\/li>\n\n\n\n<li>State change from high to low<\/li>\n\n\n\n<li>After timeout<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>List of triggers while input type is <strong>emergency <\/strong>(works in conjunction with &#8220;<em>Emergency mode activation<\/em>&#8221; which can be configured via webUI &#8220;<em>Main menu -&gt; Configurations -&gt; Emergency mode<\/em>&#8220;):\n<ul class=\"wp-block-list\">\n<li>None<\/li>\n\n\n\n<li>On state low<\/li>\n\n\n\n<li>On state high<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_trig-461x1024.png\" alt=\"\" class=\"wp-image-266\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_trig-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_trig-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_trig-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_trig-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_trig-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_trig.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_act1-461x1024.png\" alt=\"\" class=\"wp-image-260\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_act1-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_act1-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_act1-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_act1-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_act1-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_act1.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-inputs-action\">Main menu -&gt; Configuration -&gt; Inputs -&gt; Action<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Action that will happen after input port trigger condition is met. <strong>NB!<\/strong> Multiple actions are supported only when trigger type is &#8220;<em>after timeout<\/em>&#8220;.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Action\n<ul class=\"wp-block-list\">\n<li>Do nothing<\/li>\n\n\n\n<li>Output toggle (local\/remote output port or output group)<\/li>\n\n\n\n<li>Output on&nbsp;(local\/remote output port or output group)<\/li>\n\n\n\n<li>Output off&nbsp;(local\/remote output port or output group)<\/li>\n\n\n\n<li>Do MQTT (on connection fail, output toggle) (local output port or group)<\/li>\n\n\n\n<li>Do MQTT (on connection fail, output on)&nbsp;(local output port or group)<\/li>\n\n\n\n<li>Do MQTT (on connection fail, output off)&nbsp;(local output port or group)<\/li>\n\n\n\n<li>Output follow input (local output port)<\/li>\n\n\n\n<li>Output follow input inverted&nbsp;(local output port)<\/li>\n\n\n\n<li>Custom MQTT command<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Output\n<ul class=\"wp-block-list\">\n<li>Local<\/li>\n\n\n\n<li>Remote<\/li>\n\n\n\n<li>Output group<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Publish mqtt event: yes or  no. If yes then event will be published to &#8220;<em>&lt;root&gt;\/&lt;mac&gt;\/INPUTS\/EVENTS<\/em>&#8221; topic<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-inputs-globalparam\">Main Menu -&gt; Configurations -&gt; Inputs -&gt; Global parameters<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Input port global parameters.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Input port count (how many physical ports device has)<\/li>\n\n\n\n<li>Timer duration one step resolution in milliseconds. Works in conjunction with&nbsp;input trigger timer duration step (can be changed via webUI &#8220;<em>Main menu -&gt; Configurations -&gt; Inputs -&gt; Input x -&gt;Trigger<\/em>&#8220;)\n<ul class=\"wp-block-list\">\n<li>Factory default value is <strong>250ms<\/strong> (<em>this gives us: 255_max_steps * 250ms = 63750ms = 63.75sec max timer duration and minimum timer duration 250ms<\/em>).<\/li>\n\n\n\n<li>Minimum one step resolution is <strong>10ms<\/strong>.<\/li>\n\n\n\n<li>Maximum is <strong>1000ms<\/strong>.<\/li>\n\n\n\n<li><span style=\"text-decoration: underline;\">Some examples:<\/span>\n<ul class=\"wp-block-list\">\n<li><em>TimerDurationOneStepResolution = 100ms gives us usable range 100ms (TriggerTimerDurationSteps = 1) to 25500ms (TriggerTimerDurationSteps = 255)<\/em>.<\/li>\n\n\n\n<li><em>TimerDurationOneStepResolution = 10ms gives us usable range 10ms (TriggerTimerDurationSteps = 1) to 2550ms (TriggerTimerDurationSteps = 255).<\/em><\/li>\n\n\n\n<li><em>TimerDurationOneStepResolution = 1000ms gives us usable range 1000ms (TriggerTimerDurationSteps = 1) to 255000ms (TriggerTimerDurationSteps = 255).<\/em><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_global-461x1024.png\" alt=\"\" class=\"wp-image-263\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_global-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_global-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_global-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_global-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_global-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_inputs_global.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"419\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_list-419x1024.png\" alt=\"\" class=\"wp-image-272\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_list-419x1024.png 419w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_list-123x300.png 123w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_list-768x1877.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_list-628x1536.png 628w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_list-838x2048.png 838w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_list.png 1080w\" sizes=\"auto, (max-width: 419px) 100vw, 419px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-outputs\">Main Menu -&gt; Configurations -&gt; Outputs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">List of available outputs and output groups. Each output port can be configured individually.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"#anchor-configurations-outputs-output\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-output\">Output 0<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-output\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-output\">Output 1<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-output\">Output 2<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-output\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-output\">Output 3<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-output\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-output\">Output 4<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-output\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-output\">Output 5<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-output\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-output\">Output 6<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-output\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-output\">Output 7<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-globalparam\">Output ports global parameters<\/a><\/li>\n\n\n\n<li><a href=\"#anchor-configurations-outputs-groups\" data-type=\"internal\" data-id=\"#anchor-configurations-outputs-groups\">Output port groups<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-outputs-output\">Main menu -&gt; Configurations -&gt; Outputs -&gt; Output<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Output port parameters.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Port alias (port name to make things more human readable)<\/li>\n\n\n\n<li>Port availability: disabled or enabled<\/li>\n\n\n\n<li>Restored state: off or on (this state will be used <em>&#8220;Main Menu -&gt; Configurations -&gt; Outputs -&gt; Output ports global parameters -&gt; On bootup restore all ports states&#8221;<\/em> is set to TRUE).&nbsp;Restore state is state that port takes after device power up<\/li>\n\n\n\n<li>Allow restore state overwriting: no or yes (if allowed then <em>&#8220;Restored state&#8221;<\/em> will be overwritted every time output port state changes)<\/li>\n\n\n\n<li>Is output port emergency sensitive: no or yes (if port is emergency sensitive and emergency condition is met then port will take state that is defined under <em>&#8220;State during emergency active&#8221;<\/em>)<\/li>\n\n\n\n<li>State during emergency active: off or on (option is visible only if <em>&#8220;Emergency sensitive&#8221;<\/em> is set to YES)<\/li>\n\n\n\n<li>External state change allowed: no or yes (if not allowed then output port state <strong>can not<\/strong> be changed via <strong>mqtt<\/strong>\/<strong>webui<\/strong>\/<strong>console<\/strong>\/<strong>web <\/strong>requests. Only possible way to change state is by input port action)<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs-461x1024.png\" alt=\"\" class=\"wp-image-269\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_global-461x1024.png\" alt=\"\" class=\"wp-image-270\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_global-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_global-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_global-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_global-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_global-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_global.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-outputs-globalparam\">Main Menu -&gt; Configurations -&gt; Outputs -&gt; Global Parameters<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Output port global parameters.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Output port count (how many physical ports device has)<\/li>\n\n\n\n<li>On bootup restore all ports states: yes or no. If set to yes then on bootup each output state will be individually to state that is defined by <em>&#8220;Main Menu -&gt; Configurations -&gt; Outputs -&gt; Output x -&gt; Restored state&#8221;<\/em><\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-outputs-groups\">Main Menu -&gt; Configurations -&gt; Outputs -&gt; Output groups<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Currently FFAN Standard supports 6 different output groups.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enabled: no or yes<\/li>\n\n\n\n<li>Group name<\/li>\n\n\n\n<li>Group topic (macros can be used inside topics, i.e. )<\/li>\n\n\n\n<li>Outputs that belong to this particular group<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\"><strong>Group support following commands:<\/strong>\n   OFF,&nbsp;LOW,&nbsp;0, FALSE\n   ON,&nbsp;HIGH,&nbsp;1, TRUE\n   TOGGLE<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"435\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_groups-435x1024.png\" alt=\"\" class=\"wp-image-271\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_groups-435x1024.png 435w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_groups-128x300.png 128w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_groups-768x1806.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_groups-653x1536.png 653w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_groups-871x2048.png 871w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_outputs_groups.png 1080w\" sizes=\"auto, (max-width: 435px) 100vw, 435px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_webserver-461x1024.png\" alt=\"\" class=\"wp-image-273\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_webserver-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_webserver-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_webserver-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_webserver-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_webserver-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_webserver.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-webserver\">Main menu -&gt; Configurations -&gt; Web server<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Web server settings.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Session lifetime in seconds. Specifies the maximum time to allow a session to remain valid. After this duration elapses, the user must reauthenticate. Used only if password is set.<\/li>\n\n\n\n<li>Password. webUI password. To disable login feature leave this field empty<\/li>\n\n\n\n<li>Public key.<\/li>\n\n\n\n<li>Outputs control page refresh rate in milliseconds<\/li>\n\n\n\n<li>Inputs state page refresh rate in milliseconds<\/li>\n\n\n\n<li>Telemetry page refresh rate in milliseconds<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-misc\">Main Menu -&gt; Configurations -&gt; Miscellaneous<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Miscellaneous settings.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Module friendly name<\/li>\n\n\n\n<li>Heartbeat indicator led: disabled or enabled<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_misc-461x1024.png\" alt=\"\" class=\"wp-image-267\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_misc-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_misc-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_misc-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_misc-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_misc-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_misc.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"461\" height=\"1024\" src=\"http:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_emergmode-461x1024.png\" alt=\"\" class=\"wp-image-258\" srcset=\"https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_emergmode-461x1024.png 461w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_emergmode-135x300.png 135w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_emergmode-768x1707.png 768w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_emergmode-691x1536.png 691w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_emergmode-922x2048.png 922w, https:\/\/www.firefly.ee\/wp-content\/uploads\/2023\/03\/ffan_standard_os_param_emergmode.png 1080w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\" id=\"anchor-configurations-emergency\">Main menu -&gt; Configurations -&gt; Emergency mode<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Emergency mode settings. Emergency mode activation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Disabled<\/li>\n\n\n\n<li>On any emergency input active<\/li>\n\n\n\n<li>On all emergency inputs active<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>TIP!<\/strong> Emergency mode is special mode. One of the common use case: while on battery\/emergency power (on mains supply lost) switch off outputs where power hungry devices are connected.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Output command descriptions<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>state <\/strong>= set port state as on, off or toggle current state.<\/li>\n\n\n\n<li><strong>fstate <\/strong>= force state, force port to take a state when normal state change is not allowed, i.e. if port is disabled.<\/li>\n\n\n\n<li><strong>enable <\/strong>= enable or disable port. In other words set port availability.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Input command descriptions<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>state <\/strong>= NB! This is read-only command and thus it only support parameter GET, because input port state can be changed, only by physical device (switch, button, sensor etc) state change.<\/li>\n\n\n\n<li><strong>enable <\/strong>= enable or disable port.<\/li>\n\n\n\n<li><strong>ptype<\/strong> = port type can be one of the following numbers:\n<ul class=\"wp-block-list\">\n<li>0 = NONE (type not defined, no events will be fired)<\/li>\n\n\n\n<li>1 = Button (normally open)<\/li>\n\n\n\n<li>2 = Button inverted (normally closed)<\/li>\n\n\n\n<li>3 = Switch<\/li>\n\n\n\n<li>4 = Emergency<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>sync <\/strong>=&nbsp;it is necessary to call sync after changing any of input port parameters. Command sync does not take any parameters.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Parameters<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Negative type:\n<ul class=\"wp-block-list\">\n<li>OFF<\/li>\n\n\n\n<li>LOW<\/li>\n\n\n\n<li>0 (zero)<\/li>\n\n\n\n<li>DISABLE<\/li>\n\n\n\n<li>FALSE<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Positive types:\n<ul class=\"wp-block-list\">\n<li>ON<\/li>\n\n\n\n<li>HIGH<\/li>\n\n\n\n<li>1 (one)<\/li>\n\n\n\n<li>ENABLE<\/li>\n\n\n\n<li>TRUE<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Toggle types:\n<ul class=\"wp-block-list\">\n<li>TOGGLE<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Get types:\n<ul class=\"wp-block-list\">\n<li>GET<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"anchor-console-command-examples\">Console commands<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Console command structure is as follows:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">io_type port&nbsp;command parameter<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">where <strong>IO type<\/strong> can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>inputs<\/li>\n\n\n\n<li>outputs<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">where <strong>port <\/strong>can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>0..7<\/li>\n\n\n\n<li>all<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>output command<\/strong> can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>state<\/li>\n\n\n\n<li>fstate<\/li>\n\n\n\n<li>enable<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>input command<\/strong> can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>state<\/li>\n\n\n\n<li>enable<\/li>\n\n\n\n<li>ptype<\/li>\n\n\n\n<li>sync<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">and <strong>parameter <\/strong>can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OFF,&nbsp;LOW,&nbsp;0,&nbsp;DISABLE,&nbsp;FALSE<\/li>\n\n\n\n<li>ON,&nbsp;HIGH,&nbsp;1,&nbsp;ENABLE,&nbsp;TRUE<\/li>\n\n\n\n<li>TOGGLE<\/li>\n\n\n\n<li>GET<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">MQTT commands<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">MQTT command structure is as follows:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">port&nbsp;command parameter<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">where <strong>port <\/strong>can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>0..7<\/li>\n\n\n\n<li>all<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>output command<\/strong> can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>state<\/li>\n\n\n\n<li>fstate<\/li>\n\n\n\n<li>enable<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>input command<\/strong> can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>state<\/li>\n\n\n\n<li>enable<\/li>\n\n\n\n<li>ptype<\/li>\n\n\n\n<li>sync<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">and <strong>parameter <\/strong>can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OFF,&nbsp;LOW,&nbsp;0,&nbsp;DISABLE,&nbsp;FALSE<\/li>\n\n\n\n<li>ON,&nbsp;HIGH,&nbsp;1,&nbsp;ENABLE,&nbsp;TRUE<\/li>\n\n\n\n<li>TOGGLE<\/li>\n\n\n\n<li>GET<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Some most common mqtt command examples:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Turn on output port 0 (very first port):\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>0 state on<\/strong><\/li>\n\n\n\n<li>Result topics:\n<ul class=\"wp-block-list\">\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT0<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Get output port 3 state:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>3 state get<\/strong><\/li>\n\n\n\n<li>Result topics:\n<ul class=\"wp-block-list\">\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT0<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Toggle all output port states:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>all&nbsp;state toggle<\/strong><\/li>\n\n\n\n<li>Result topics:\n<ul class=\"wp-block-list\">\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT0<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT1<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT2<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT3<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT4<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT5<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT6<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/OUTPUT7<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Disable output port 7:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>7&nbsp;enable false<\/strong><\/li>\n\n\n\n<li>Result topics:\n<ul class=\"wp-block-list\">\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/ENABLE<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/OUTPUTS\/ENABLE7<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Enable input port 2:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>2&nbsp;enable true<\/strong><\/li>\n\n\n\n<li>Result topics:\n<ul class=\"wp-block-list\">\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS\/ENABLE<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS\/ENABLE2<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Syncronise all outputs with inputs:\n<ul class=\"wp-block-list\">\n<li>Topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>all&nbsp;sync<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Get input port 5 state:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>5 state get<\/strong><\/li>\n\n\n\n<li>Result topics:\n<ul class=\"wp-block-list\">\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS\/STATE<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS\/STATE5<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Get input port 0 type:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS<\/strong><\/li>\n\n\n\n<li>Command: <strong>0 ptype get<\/strong><\/li>\n\n\n\n<li>Result topics:\n<ul class=\"wp-block-list\">\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS\/PORTTYPE<\/strong><\/li>\n\n\n\n<li><strong>&lt;root&gt;\/&lt;MAC&gt;\/INPUTS\/PORTTYPE0<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">MQTT system commands:<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Restart device:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/SYSTEM<\/strong><\/li>\n\n\n\n<li>Command: <strong>restart<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Request network info:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/SYSTEM<\/strong><\/li>\n\n\n\n<li>Command: <strong>network<\/strong><\/li>\n\n\n\n<li>Result topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/NETWORK<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Request telemetry info:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/SYSTEM<\/strong><\/li>\n\n\n\n<li>Command: <strong>tele<\/strong><\/li>\n\n\n\n<li>Result topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/NETWORK<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Request status info:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/SYSTEM<\/strong><\/li>\n\n\n\n<li>Command: <strong>status<\/strong><\/li>\n\n\n\n<li>Result topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/STATUS<\/strong><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Request auto discovery info:\n<ul class=\"wp-block-list\">\n<li>Command topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/SYSTEM<\/strong><\/li>\n\n\n\n<li>Command: <strong>disco<\/strong><\/li>\n\n\n\n<li>Result topic: <strong>&lt;root&gt;\/&lt;MAC&gt;\/discovery<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Web request&nbsp;commands<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Output port web request structure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;&lt;ip&gt;\/webctrl\/outputs?p=port&amp;amp;cmd=command&amp;amp;param=parameter<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Input port web request structure:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>http:&#47;&#47;&lt;ip&gt;\/webctrl\/inputs?p=port&amp;amp;cmd=command&amp;amp;param=parameter<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">where <strong>port <\/strong>can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>0..7<\/li>\n\n\n\n<li>all<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>output command<\/strong> can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>state<\/li>\n\n\n\n<li>fstate<\/li>\n\n\n\n<li>enable<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>input command<\/strong> can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>state<\/li>\n\n\n\n<li>enable<\/li>\n\n\n\n<li>ptype<\/li>\n\n\n\n<li>sync<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">and <strong>parameter <\/strong>can be:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>OFF,&nbsp;LOW,&nbsp;0,&nbsp;DISABLE,&nbsp;FALSE<\/li>\n\n\n\n<li>ON,&nbsp;HIGH,&nbsp;1,&nbsp;ENABLE,&nbsp;TRUE<\/li>\n\n\n\n<li>TOGGLE<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">http:\/\/&lt;ip&gt;\/webctrl\/outputs?p=all&#038;cmd=state&#038;param=toggle<\/p>\n<cite>Toggle all output ports<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">NB! Parameter GET not not supported. If you want to get output states then use <strong>http:\/\/&lt;ip&gt;\/json\/outputs<\/strong> and for input states use <strong>http:\/\/&lt;ip&gt;\/json\/inputs<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n","protected":false},"excerpt":{"rendered":"<p>FFAN&#8217;s web user interface is a practical way to control the device and manage most common parameters and features. NB! WebUI\u00a0does not\u00a0have all the features and commands implemented. For precise and complete control use FFAN Configuration tool! To access the webUI use your device&#8217;s IP address (TIP! Press menu button on device until network tab<\/p>\n<p class=\"more-link\"><a href=\"https:\/\/www.firefly.ee\/home\/ffan-standard\/ffan-standard-os\/\" class=\"themebutton\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":105,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-247","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/pages\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/comments?post=247"}],"version-history":[{"count":78,"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/pages\/247\/revisions"}],"predecessor-version":[{"id":541,"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/pages\/247\/revisions\/541"}],"up":[{"embeddable":true,"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/pages\/105"}],"wp:attachment":[{"href":"https:\/\/www.firefly.ee\/home\/wp-json\/wp\/v2\/media?parent=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}