Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,


as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.


As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!



Smart Home Forum by FIBARO Team

Remote All-in-One 2.1

   (1 review)

3 Screenshots

About This File

Contributions & credits

@jgab  - fibaroapiHC3.lua (SDK for remote and offline HC3 development)

@10der - Visual Studio LUA environment.


AOR can control any Fibaro system HC3, HC2, HCL, HC3L, Yubii from your PC using ZeroBrane or Visual Studio Code editors.

You can use full LUA 5.3  libraries, read/write files, run programs on your PC, to integrate other systems using your own LUA functions.

HCL users finally can use LUA to control their system without block scenes and limited Virtual devices.


No need to migrate devices or to use master/slave configuration.


Download AOR_ZB.txt (zip) file for ZeroBrane

Download AOR_VS.txt (zip) file for Microsoft Visual studio

After download, change the file extension to .zip and extract the file.


By default AOR supports Text-To-Speech on your PC speakers, use it to be alerted on any event you would  like to monitor and to be aware about.


The AOR designated to control and monitor devices across your Fibaro controllers. AOR automatically identifies the type of elements in the systems. (Z-wave device, Nice, QA device, scene, automatic scene (Block and Lua), global variables. Any valid Z-wave,Nice and QA devices property and their values could be monitored, controlled and execute commands accordingly

AOR supports custom events, active profile setup and controls alarm zones while every breached zone or sensor in the zone could be identified and execute actions accordingly.

All above executed with no extra load on controllers CPU or RAM... just keep your PC out of sleep mode...


As an example:

The first time you use All-in-One, jM {} hash table must be defined. Each line in the table has two mandatory and two optional fields.

jM={ {      15,              "137|630",       {timeSlot={“12:00~18:00”},state="value=true",     trueAct={“|230|”, “turnOn”,””}}}   }

           Time span      IDs list                                   Criteria & Rules                                               Action tables


Time span   a period of time (in minutes) within which some activity must be performed by device or scene. Additional two options could be defined:

time span = 0   defines the line as activity only.

time span = ‘negative number’   line is suspended (remarked)

IDs list   given list of devices/scenes/QA/global/keywords. Use under score for scene IDs. (“_45”).

global variable – add an ampersand sign & to System, QA and Local variable names: &varName

keyword – add a dollar sign $ to keyword variable: $name

Note: To use & and $ characters for other purpose , add % after the character.

Criteria & Rules  (optional) property, state, time slot, active rules…

Action tables      (optional) tables of commands to be executed.


To avoid using device IDs  jS2n{} array could be defined. If device ID changed because of re-inclusion it requires to change ID in one place only.

for example:

jS2n= {boiler=137'hc3, dryer=630'hc2, light=230'hcl} device name must be included within back apostrophe sign in jM{} hash table.

Now jM{} hash table above will look like that:

jM={ { 15,  "`boiler`|`dryer`",{timeSlot={“12:00~18:00”},state="value=true",     trueAct={“`light`”, “turnOn”,””}}}   }


1. Monitor option

Some time the scenes,QA and Virtual devices are stuck w/o any understandable reason. Some devices suddenly stop to send reports or don’t change state. In most of the cases we don’t aware about the problem till something goes very wrong.  The monitor option will send an alert in case of defined states are timed out.

Example to set watchdog timer for devices, scenes, QA devices, global variables and keywords


{8, "_17'hc3|_545'hcl",{timeSlot=”10:00~22:00”}},  -- within every 8 min.  between 10am to 10pm, scenes 17, 545 must be active. If not alert sent.

{3,"134'hc2|618'hcl|_556'hc3|_588'yubii"},  -- within  every 3 min. devices  in the list and scenes  must be active. If not auto-alert sent.

{10,”132'hcl|145'hc2”,{property=”power”}}, -- within every 10 min. devices in the list must to report new power value. If not auto-alert sent.

{30,”470'hc3”,{state=”power>10”}}, -- if device’s power greater than 10 over 30 minutes, auto-alert sent.

{20,”&HomeStatus'hcl|$iDoor”}} -- if global variable HomeStatus or keyword iDoor didn’t change within 20 min., auto-alert sent.


2. Control option

Execute actions based on device state, status or value changes at any controller and execute actions on others. AOR supports on-line calculations, time modifications, IF THEN and WHEN THEN statements and other features for fully home automation just with one program on your PC (which even doesn’t load the controllers). 

Following action tables are available:

trueAct{} - executed when state status is true.

falseAct{} - executed when state status is false.

trigAct{} - executed on every value change at any mode, true or false

timeoutAct{} - Disables auto-alert notification and executed when elapsed time exceeds time span. Time span counting restarted after state status back to true.

timeLoopAct{} - Disables auto-alert notification and executed when elapsed time exceeds time span. Time counting restarted immediately.

InitAct{} - Set of specific actions to be executed on startup only.

errAct{} - Set of specific actions to be executed if verification failed.

okAct{} - Set of specific actions to be executed if verification succeded.


Here is an example when motion sensor breached on HC3, turn ON lights in HCL and turn off the light 3 minutes after sensor back to safe.




3. User LUA function execution

When device 150 on HC3 breached or goes back to safe run foo function and pass the value as an argument

jM={"150'hc3", {state="true", trueAct={"foo",  "runFunc, @$id>value"}, falseAct={"foo",  "runFunc, @$id>value"}}},


in user_func.lua file the foo function would look like:


function foo(value)

if value=="true" then


elseif value=="false" then





For more details please download

AOR Installation

AOR Advanced User’s Guide - complete instructions and information

AOR Quick Reference Guide – syntax format reference and examples

AOR User functions – write your own code.

GPS User Guide - location functionality


Microsoft Visual Studio debug console





ZeroBrane console output




Web view




Edited by cag014

What's New in Version 2.1   See changelog


Bug fix

No alert when slave back on line

Stability improvement

Minor bug fix


Users that already using AOR, just copy AOR.lua file to your project (replace your old AOR)

  • Like 1

User Feedback

You may only provide a review once you have downloaded the file.



Awesome solution to write LUA code on my old HCL controller, no more block scenes !

Running one program on PC and control all my old and new systems (HCL/HC2/HC3/Yubii) by using entire LUA library.

Thank you cag014





Link to review
  • Create New...