More Thoughts on EZLO Plus from new user

Been progressing on my Ezlo Plus journey this week. I few more thoughts for those trying to decide to move forward from Vera.

  1. The ezlogic.mios.com web page to build scripts and scenes (called MeshBot) is far more powerful that Vera. I am still early in the learning curve but it is obvious you will be able to do things easier than complex LUA scripts for everything. The advanced programmer might prefer the old ways but people that are lower skilled in programming I think will like this more. It more intuitive, highly graphical interface. Big plus in my mind.
  2. The AND capability for triggers is significant. I looked at some of the LUA code I had in my Vera and many of the pieces were chunks of code in a scene that added additional test cases before running the scene action. In essence this was code in LUA to implement an AND function in a much more laborious and awkward way. Vera always had the OR capability for scene triggering (just add more triggers) but it didn’t have the AND. I like the new way better, less obscure LUA code creation required. This is a big plus as well.
  3. I haven’t figured out how to use Variables in MeshBots yet. I presume these are all global variable but I’m not positive. I see how you create them on the interface but not sure how to use then as triggers for a MeshBot or a test variable in a LUA script. I’m sure its possible but haven’t found any sample code for variables that would speed up my learning.
  4. Doing a Ezlo Plus reboot is too obscure. I spent 20 minutes searching through the ezlogic.mios.com function trees before I found it buried at MIOS/Controllers/Function/Maintenance. It seems it could warrant a dedicated line under the Function pull down (reboot) instead of burying it in the more obscure Maintenance/Remove tab. I still haven’t found how to reboot Ezlo Plus from the iPhone app.
  5. I do have a bug where I can’t delete some old Lua Scripts I was playing around with. I get an error when I try to delete them on the web interface (anonymous plugin required) and in the iPhone (Error, Sorry, something unexpected happened, please try again later). Trying later doesn’t help. So there a bug to fix in the next release but more broadly the crytic error messages aren’t very helpful. if the goal is to make this more applicable to broader user base the Linux O/S style error messages aren’t useful, in fact they can be infuriating. Might be better just to parse them and say …“Error, we know why but you won’t understand so we won’t trouble you with it. Have a nice day.”…
  6. Going to spend some time in variable, expressions and meshbots next to improve my fluency. I suspect I have much to learn in these areas.

Just some more thinking for someone who made the plunge over from Vera. Some issues but the good seems to outweigh the bad.

p.s. having a system that is being worked on with regular updates is also a plus. Vera was essentially EOL (end of life) for a few years now. At the least getting periodic releases give you hope again!

2 Likes

Hello @curiousB ,

We are glad that you are enjoing the new ezlogic platform and we apreciate your comments, we will send them to the in-charge department.

Thank you and regards,

Jonathan Botero.
Customer Care Tier 1 Support.

Yeah they appear to be global variables currently.

You cannot like in Multi System Reactor in a rule, just add a local variable / expression for use only within that particular rule.

Hi @curiousB , thanks for the valuable feedback and positive thoughts,
I would like to comment on some parts

That would be handy, I agree. We will add it to our list.

That part we are working on currently. And in a short while we will come up with a very powerful feature set where you will be able to save the output of HTTP calls and Cloud service calls and then modify the data and then use it in another trigger as data source or as a comparison data. we really think it will jsut level up the entire platform. So please stay tuned for that and meanwhile you can have a look at Variables - help.mios.com section and let us know if you like to see additional information.

Thanks

Yes that is helpful. It seems to miss part of the equation though.

  1. It shows you how to create a variable and initialize it.
  2. It shows you how to use the variable in a test condition to run a trigger.

But it doesn’t show you how to manipulate and update the variable other than the definition and initial setting.

For instance I create a boolean variable DeferOn and initialize that to false. I can then use it to make decisions on later. If I have a condition which would cause me to set DeferOn to true how do I do that? In LUA code?

  DeferOn = True

If so do I have to define it as a global variable in at the onset of the LUA code?

Hi @curiousB

Thanks for the feedback. Regarding your points.

“But it doesn’t show you how to manipulate and update the variable other than the definition and initial setting.”

Because this isn’t possible yet, sorry. If it were then the page would explain how to do so.

The current implementation of variables in EZLogic is just the first round. This is what Osman was referring to in this comment:

“And in a short while we will come up with a very powerful feature set where you will be able to save the output of HTTP calls and Cloud service calls and then modify the data and then use it in another trigger as data source or as a comparison data.”

The following points are not official statements on what is being developed, let me make that clear. They are just part a ‘wish-list’, along with other suggestions, that could help improve our variables system. They are under consideration by the dev team, but then so are many other features and improvements. They are not a list of what may or may not be released in forthcoming builds.

We can, however, use them as a starting point to gather your feedback. Do you agree with them or have other suggestions?

i) Add ‘Set Variable’ as an action controllable type

i.e. In the first drop-down in an action.

This would let you directly update (or create a new) variable as an action.

E.g. 1 = Action = ‘Boolean Variable’ = ‘True/False’. The action is simply to set a variable to true/false, and this affects triggers which use the variable.

E.g. 2 = Action = ‘Integer Variable’ = ‘Value/Variable/Expression’. Action is to implement a certain value for the variable. Again, the variable can be referenced in a trigger.

Note - we can do this now, but only if you select ‘HTTP Request’ or ‘Nucal’ as the controllable type. It should be a standalone controllable type too.

ii) Add variables and expressions to the ‘Action’ part of a meshbot.

i.e. in the ‘right-hand’ side of a meshbot action.

E.g. 1 Action = ‘Device’ > ‘Thermostat’ > ‘Temp’ to variable/value/expression Y

E.g 2 Action = ‘Device’ > ‘Lounge Lights’ > ‘Dim Level’ to variable/value/expression Y.

You could then use the variable in a number of different meshbots when certain triggers are met. For example, the dim level setting above could be used in a general evening meshbot, or a meshbot for when you are watching TV, or a meshbot attached to a motion detector so the lights don’t blast on at full intensity if you pop downstairs at 3 AM to stop the dog barking or check something else.

Apart from being very useful to home users, this would also be a great time-saver in large-scale deployments. For example, a property manager who wants to tweak the temperature of the radiators in all apartments in a building would only need to update the variable value once. This contrasts to opening (possibly multiple) meshbots and directly updating the value in the action row for each radiator device.

iii) Add ‘Variables’ and ‘Expressions’ as new ‘Node Type’ in a trigger.

This way you can use one of your variables or expressions as the condition for starting an action.

E.g. If variable X = value/variable/expression Y, then…

Currently, you can only access variables and expressions IF you select node type ‘Device’ + suitable device + suitable capability.

__

“For instance I create a boolean variable DeferOn and initialize that to false. I can then use it to make decisions on later. If I have a condition which would cause me to set DeferOn to true how do I do that?”

Unfortunately, you can’t right now. If we implement something like i), ii) and iii) then this should let you achieve your goal ‘in gui’.

Again, we’re eager to hear your feedback and thanks again for your detailed comments thus far.

Thanks

Paul

1 Like