New Ezlo Plus user initial thoughts

Long time (10+ years) Vera user (Vera Lite and Vera Plus with large ZWave network).

I just got my Ezlo plus controller and got it set up and working. I suppose there are many new facets to this environment I have to learn about but nonetheless I have a few findings:

  1. I hope you are planning to add virtual switches. I use these extensively in my scenes to make conditional decisions on future actions. I have one called “defer shutoff”. Its basically a virtual switch that if on it skips the 10:30PM family Room lights from shutting down. If we stay up late or have guests over. I have been using the virtual switch plugin on Vera for a few years now and surely miss it here.

I also use virtual switches to keep track of states in certain chain of command sequences in some scenes. Things where you need A before B and both before C kind of thing.

I have seen some posts of issuing line item commands to create a virtual switch but that is far too cumbersome and only useful for professional software developers. The other 99.8% of the user community need a virtual switch that is as easily added as enrolling a ZWave switch.

  1. Calling a scene from a scene. I have a few scenes that call other scenes. I do this with the LUA code below. I assume this would still work but since you mask a lot of details in this new UI I don’t know how to get the sceneId number. Is there a way to do this using the scene name? Otherwise how do I find out the sceneId number? It would seem to me that it should be easy to add another category to the “add Action” portion of the scene tool that allows you to add the calling of a scene.

local sceneId = “16” – this LUUP code runs scene 16 which is MM All Off
luup.call_action(“urn:micasaverde-com:serviceId:HomeAutomationGateway1”, “RunScene”, {SceneNum = sceneId}, 0)

  1. Camera Support. This seems quite limited but I haven’t spent enough time here yet. I have 14 existing cameras (mostly FOSCAM) which I use on Vera Plus using an older FOSCAM impl file. It would be good if you could add a generic IP camera and in the setup screen you could enter the various HTML CGI Request strings for the various functions. Camera Up, Camera Down, Zoom in, Zoom Out, Pan right, Pan left, Jump to Preset x, Set Preset x, …

  2. Guide to LUA on Ezlo Plus for dummies. This would be an invaluable publication. Most of us wanting to do some LUA code have very simple needs, we aren’t writing hundreds of lines of LUA code, just a couple to get some things done. Maybe a bunch of simple examples of turning something on or off, query the state of something, and so on. Also explain the cryptic device numbering system and how do you find the device id for something added (that shouldn’t require a console SSH login and command lines to figure out.

  3. Plugins. It seems this new platform wants to minimize plugins and seems to discourage 3rd parties from creating them. That seems a strange strategy for broad adoption. Imagine if Apple took this approach. How valuable is an iPhone with just Apple apps? I would have thought developer tools and a plugin marketplace is critically important to success.

…“We plan to develop plugins for the Ecobee and Honeywell thermostats, as well as Philips Hue lights. We don’t have plans to develop many more but do want to create a marketplace within the community to take advantage of the creativity and expertise of our users.”…

Anyway I am starting my journey with Ezlo but was hoping for a softer learning curve than Vera was. Thinking it might even be steeper. In fairness I just logged into the EZLOGIC.MIOS.COM web site so maybe that will offer some easier options to my issues above.

After 10+ years with Vera I am conditioned to hanging in there. I hope to hear some of these things come to be. A little more platform friendliness for the non professional software developer would be nice.

4 Likes

Hi @curiousB ,

First we congratulate you being such a long time user of the platform and appreciate your valuable feedback on our new Ezlo platform.

I strongly encourage you to take a deeper look to the web platform ezlogic.mios.com since you will find more answers to your questions there.
I would like to comment on some the findings:

  1. We are planning to add virtual switches in a couple of ways. Currently we have “virtual container” concept which is very similar to virtual devices you are used to in vera, just now it does force you to map capabilities to existing devices. Soon we will remove this obligation and you will be able to create virtual switches as you were doing before. But you may find another way for doing that by the help of our Meshbot nodes.
    You can put a meshbot state as a condition(trigger) to another like this:

So you can create an empty meshbot and use it like a virtual switch by enabling/disabling it.

  1. You can call (run) a Meshbot from another Meshbot easily just by selecting it from dropdown so you don’t need to write Lua code now.


  2. For plugins that was understood wrong from our staff I think. We have renewed our plugin platform and infrastructure and now working on adding more and more plugins … We have also a marketplace already and put our first plugins there. Please check it:

And for the others I want to dig deeper:
3. We already have IP generic camera option in the pairing wizard but I see that you want additional options there, can you give some examples to make it clearer ?

  1. We started building our documentation on our developer portal (developer.mios.com) so please check there first and can you give some examples of lua codes you are using so that we can add docs about those functions. And do you have a suggestion on where you want to see the device/item id numbers ?

Thanks,

I agree, there isn’t a way currently to add bog Standard virtual switches via the Ezlogic web GUI.

You currently have to follow my guide here.

Hopefully they will add the ability to do this more easily via the web GUI in the future or they can improve the “Virtual Containers” area of the GUI.

I believe you can do this in a Meshbot rule’s action already, via the web GUI at least - https://ezlogic.mios.com/

This Vera LUA code won’t work on Ezlo hubs. We unfortunately cannot just copy and paste our Vera LUA codes to a new Ezlo hub. As they have changed the whole underlying architecture and API’s plus the “LUA Code” for Ezlo hubs looks like a different programming language from a layman’s perspective.

I don’t know much about Camera support on the Ezlo hubs, but you might want to take a look at Vidoo instead which can be used as an NVR and for integrating cameras in to the Ezlo platform.

I agree as they have changed the coding language, I don’t know how to convert some of my Vera LUA codes in to Ezlo compatible ones.

There was a few threads like this one here with some examples.

I have a private beta Ezlo Philips Hue plugin installed on my Ezlo Plus hub so they are working on that one I can say for sure. And I believe they are working with 3rd party devs in this forum answering their questions and fixing any issues they bring up regarding creation of 3rd party plugins. Or I certainly hope that is what is happening to encourage 3rd party devs they need to give them priority support and resolutions.

Thanks to you both. I have been exploring the ezlogic.mios.com site and it seems to have options for some of my needs.

For those struggling trying to enter Scenes via a phone keypad go over to ezlogic.mios.com for a much friendlier web page to create, edit and test scenes. This MeshBot area looks to be quite powerful.

I created a test Meshbot scene (which calls another scene) and that was quite easy. I went to see what it looked like in the scene editor in the iPhone app but it doesn’t show much beyond the scene name. At least you know its there but editing must be done from web UI which I don’t view as a problem, that’s the better place to edit it anyway.

So I’ll experiment here and see what trouble I can get into!

Yes be careful. the Vera mobile apps are not fully in sync it seems, with rules create via the Ezlogic web GUI. its like the two “systems” are not fully compatible with each other or support all features and functions of each. My advice would be to just create all your rules (scenes) via the web GUI and forget about using the Scenes area of the mobile app.

just a quick one. Anything obvious I am doing wrong?

tried running this LUA code and get the error below. Was just trying to shut off a binary appliance module with the name PlugSwitch

require "core"
local items = core.get_items()
if items then
    for _, item in ipairs(items) do
        if item.name == "switch" then
            local device = core.get_device(item.device_id)
            if device  and device.name == "PlugSwitch" then
                core.set_item_value(item.id, false)
            end
        end
    end
end

[string “anonymous:62cd68f9d4e1dc128bfc9c0e”]:8: core.setItemValue: an incorrect number of parameters.
stack traceback:
=[C]
anonymous:62cd68f9d4e1dc128bfc9c0e:8

You using the correct device Id ?

You need to use the Online API Tool and do a query to list all decices and then find the device in question and its actual device id number etc.

https://apitool.ezlo.com/auth/login

I thought the purpose of the script was to refer to the device by its name and the script would find its device id. I was thinking this was a nice feature rather than cryptic 20some long number sequences.

1 Like

Yeah you might be right, I just read the script again and that appears to be what its meant to be doing.

Yes if it works that would be a better script if you can just enter the devices name, rather than messing about trying to look up its device Id.

Also Ezlo really need to expand the amount of device / item details and information shown and presented to the user in the Settings - Devices area of their web UI.

I find it very lacking and not as useful as the old Vera UI7 web UI.

Its from that other thread I linked too earlier I see.

Turn on one light by the name :
For this to work you just need to change NAME_OF_DEVICE to the the unique name of the device you want to turn on.

require "core"
local items = core.get_items()
if items then
    for _, item in ipairs(items) do
        if item.name == "switch" then
            local device = core.get_device(item.device_id)
            if device and device.name == "NAME_OF_DEVICE" then
                core.set_item_value(item.id, true)
            end
        end
    end
end

So lets assume we have in the app one lamp with the name Bedroom Lamp. So the lua code will be as shown below if we want to turn it on with this code.

require "core"
local items = core.get_items()
if items then
    for _, item in ipairs(items) do
        if item.name == "switch" then
            local device = core.get_device(item.device_id)
            if device and device.name == "Bedroom Lamp" then
                core.set_item_value(item.id, true)
            end
        end
    end
end

Il’l have to try it myself later and see.

Seems to work OK for me, I just created two new LUA scripts in the web GUI one for “Fan” ON and one for “Fan” OFF.

image

image

When I pressed the Play buttons next to the scripts my Fan in the room was turned ON and OFF OK.

What’s the firmware version of your Ezlo controller?

There was a bug with LUA scripts not running recently and that was only fixed for me in the last release they put out.

image

I’m at 2.0.28.1978.1 which I thought was the current. but I guess not.

That’s why LUA codes are not running for you. Try rebooting your controller to update it.

I don’t think that its related to FW version @cw-kid since @curiousB is getting an error means it is running…
The error is “core.setItemValue: an incorrect number of parameters” so maybe the device itself requires some additional parameters or maybe it is a typo or sth.

@curiousB can you dump the output of apitool hub.item.list for that device items like this :

1 Like

Thank you both. Osman is correct I think.

If I comment out the line …" – core.set_item_value(item.id, false) – >> something wrong with this line"… the script runs fine. I un-comment it and the I get the error below. I tried all sort of things to solve this but no luck. Something in the action of setting the switch state is getting an error.

require "core"
local deviceName = "PlugSwitch"   -- name of device to control
local items = core.get_items()
if items then
    for _, item in ipairs(items) do
        if item.name == "switch" then
            local device = core.get_device(item.device_id)
            if device and device.name == deviceName then
                core.set_item_value(item.id, false)   -- >> something wrong with this line
            end
        end
    end
end



[string "anonymous:62cdec1ad4e1dc12c8628a00"]:9: core.setItemValue: an incorrect number of parameters.
stack traceback:
	=[C]
	anonymous:62cdec1ad4e1dc12c8628a00:9

Hi @curiousB ,

It looks like core.set_item_value is asking for more than two parameters.

Could you please try core.set_item_value(item.id, false,nil) and let me know?

2 Likes

Yes adding the , nil corrected the problem in all the experimental scripts I was playing with. Not sure why I need the third parameter and others haven’t needed to. Would be interesting to understand why that is but for now this clears a big roadblock. Thanks!

Here is a script that works (don’t know why I lost the indenting via pasting script here).

This script toggles the switch state of a device by its name and not its iD.

require "core"
local deviceName = "PlugSwitch"   -- name of device to control
local items = core.get_items()
if items then
    for _, item in ipairs(items) do
        if item.name == "switch" then
            local device = core.get_device(item.device_id)
            if device and device.name == deviceName then
                 core.set_item_value(  item.id, not( item.value), nil ) -- toggles state from prior
            end
        end
    end
end
2 Likes

I’ve been a Vera user for as long as there has been Vera…LOL. I am on my 4th box.
I have 40 devices, 31 scenes and use some plugins like Harmony. I need the ability, for example to Turn on my Projector, turn on the Yamaha Amp, change input, adjust the temperature, set the lights,close the curtains and turn on appleTV. Seemingly what many would like for a media room. I have held off in going to Ezlo since many of the actions are on Harmony, which I don’t think is supported yet.
How are others dealing with what would seem like a baseline requirement for setting up a “room” for a movie? I am probably missing something.

Hi @Paulb4333 , we are trying to build an easier experience on the whole platform, as well as the plugin development and usage flows. The syntax has been changed and now we are building back the marketplace you love from vera in a much better way. We already developed plugins as Ezlo and put it freely on the marketplace. we would love to create more examples and also encourage other developers to engage with the platform. And we absolutely love to hear feedback from experienced users like you to improve the platform.
Would you please share which plugins you are using on your scenes and what kind of automation rules you are using ?

Thanks

You need to put 3 tick characters before and after your code to have it formatted properly on the forum.

" ``` "