Running Lua Code ? And watching device properties?
-
Thanks guys for the information.
Yes I admit I need to keep remembering things might not be implemented yet.
But as I have never used Reactor plugin for Vera, I have nothing to compare MSR against other than PLEG.
I don't know what is currently possible in the Reactor plugin for Vera etc which isn't helping me when looking at MSR.
I am moving my more simple PLEG actions over to MSR now and have already disabled several PLEG conditions on the Vera box.
Schedules in MSR I am still testing and struggling with a bit, so I only have two moved over to MSR currently and one isn't running at all and one ran this morning but later than I expected it to do so.
I have some pretty long LUA scrips in PLEG for some stuff, I don't think I could do it easily without using LUA code.
Are there any examples of a Master Slave dimmer setup which I can follow ?
Cheers.
-
@therealdb said in Running Lua Code ? And watching device properties?:
you can run lua code via http call
OK that's a clever idea.
So the LUA code is stored where? In a function in the Vera startup right. And then you are just calling it to run via a HTTP request from MSR.
-
-
toggledbitsreplied to cw-kid on Feb 21, 2021, 3:45 PM last edited by toggledbits Feb 21, 2021, 10:47 AM
This is how it will go:
That said, this won't work today, because I haven't yet connected the expressions to the action parameters (the
{master_level}
value in the dimming action won't work yet). That's coming, but not yet. You can, however, do exactly this in Vera Reactor to see how it works. It will work the same way in MSR.Edit... let me explain how it works (on both Vera Reactor and MSR):
The expression keeps the current value of the master dimmer. So on my system,
vera>device_105
is named "Virtual Dimmer 18". The trigger condition looks for any change in the dimming level of that dimmer. When it changes, the set reaction sets the current value (from the expressionmaster_level
) on the slave dimmer "Virtual Dimmer 20". Bob's your uncle. -
@toggledbits What you just explained makes perfect sense.
However I would not have had a clue how to correctly construct that expression with the correct syntax.
I think I have mine setup correctly now.
I understand it wont actually work yet though.
-
@cw-kid said in Running Lua Code ? And watching device properties?:
However I would not have had a clue how to correctly construct that expression with the correct syntax.
Right, so I think this is a big issue in your case. My intent with this developer preview was to have experienced Reactor users help me test MSR. You're in the tough spot of coming from PLEG, with no prior Reactor experience, so not only do you not know the current product, but you also don't know if what you're looking at in the new product is right or wrong, same or different. That makes it palpably frustrating for you, and frankly for me as well, because you are not at the level I set for this test. I suspect you're also a bit irritated at having to do this at all, since Richard seems to have abandoned his product years ago (as evidenced by his near-total absence in the forums, the maturity of his product notwithstanding), and the prospect that no PLEG for eZLO seems to be in the works that I've heard.
None of that matters, at least to me, and I appreciate the effort you're putting in, and you're finding bugs and helping, so all is cool in my book, but for the fact that I feel like you're sometimes losing your perspective and treating this as if it's finished and shipped. This is a developer preview, and again, it's known to be incomplete, and its intended audience was existing Reactor users. Those users would know how to build the expression. If you're going to continue to participate, and I hope that you do, please keep this in mind. Making contact with the product this early, you are not only positioning yourself to be a master of it in future, but you're in a position to shape its future, and you have my attention.
You might take a read of the docs for Vera Reactor, to get a better lay of the land, including expressions. Things are different between the two systems, for sure, but the strong flavor is nonetheless there. You can also experiment with Vera Reactor on your Vera directly, and this may actually be very useful in helping identify other differences or gaps that should be at least documented if not closed. Either way, as the more mature product and very stable, it should help remove some of the questions and the trips in your learning curve caused by my errors in the new product. That said, I think I've shown that I will work as quickly as possible to get things shored up so that you can be productive on MSR.
Vera Reactor Docs: https://www.toggledbits.com/static/reactor/docs/
-
All fair comments and observations Patrick. I certainly don't want to cause frustration to anyone.
In PLEG there was no need to of even written an expression just to monitor the value of a devices Dimming level for example. I'd just create a device property.
PLEG device properties are similar to how you build triggers in MSR, in the respect that you just select things from drop down lists. So monitoring a devices Dimming level in PLEG is trivial to setup.
Conditions in PLEG are not so trivial however and are more like writing expressions.
If MSR could build device properties or watch variables as PLEG does I think you'd be making it super easy for any user to pick up and run with MSR.
-
In vera reactor to watch a device state you just set a variable and there is a button to pick what you want to get/watch, this creates the expression for you. The button exists in MSR, but as Patrick says expressions are not fully implemented yet. When it is you will see how simple it is. Install Vera reactor just to have a play.
-
OK sounds good.
-
toggledbitsreplied to cw-kid on Feb 21, 2021, 6:18 PM last edited by toggledbits Feb 21, 2021, 1:46 PM
@cw-kid said in Running Lua Code ? And watching device properties?:
If MSR could build device properties or watch variables as PLEG does I think you'd be making it super easy for any user to pick up and run with MSR.
I'm really not getting what you're on about here. In your example earlier in the reply, monitoring the dimming level of a device is just this simple in MSR or Vera Reactor:
You literally select the device and the attribute and you're done, with all the different operators to choose from as well. There's no need for an expression at all. The only reason we have an expression for your ealier example/request is that we need to copy the attribute value from one device to another. But if we were just going to turn on another light in response to a light turning on, no expression needed.
-
@therealdb said in Running Lua Code ? And watching device properties?:
if you define a library and register it at startup, you could do that too. I’m currently using this approach, and I like it because it’s inside a file and not a textbox.
Can you give me some easy to follow instructions on how to do this please?
I like the idea of having my lua code in different files stored on the Vera hub and then being able to have that Lua code run by sending a http request from my MSR rule etc.
I would like to reduce the number of Vera scenes I currently have also.
-
@cw-kid here we go: https://github.com/dbochicchio/vera/tree/master/Library
I've added a sample to RunLua as well, so this should serve well our future us when in need of it
-
cw-kidreplied to therealdb on Feb 24, 2021, 3:18 PM last edited by cw-kid Feb 24, 2021, 12:11 PM
@therealdb Great thanks
First question which folder do you store the VeraScenes.lua file on the Vera file system ?
I put it in here:
/etc/cmh-ludl
EDIT
You need to upload the file via the Vera web GUI in
Apps - Develop Apps - Luup files
area not via some other means like WinSCP.
-
@cw-kid said in Running Lua Code ? And watching device properties?:
First question which folder do you store the VeraScenes.lua file on the Vera file system ?
or just use "Upload files" from Apps.
Mandatory part is to import into Lua Startup, under Apps, Develop Apps, Edit Startup Lua.
VeraScenes = require("VeraScenes")
I'll correct the readme soon.
-
@therealdb said in Running Lua Code ? And watching device properties?:
Mandatory part is to import into Lua Startup, under Apps, Develop Apps, Edit Startup Lua.
I did that.
-
Its working now if I upload it via Vera GUI and not WinSCP
Thanks
-
btw, your code seems to need some re-working to avoid warnings. try this:
function TTSTest() luup.log('VeraScenes.TTSTest') local mode = tonumber(luup.attr_get("Mode", 0)) if (mode == 1) then luup.inet.wget("http://192.168.0.4:1880/scenetrigger?message=This is a Test&ip=192.168.0.16") end end
-
@toggledbits said in Running Lua Code ? And watching device properties?:
That said, this won't work today, because I haven't yet connected the expressions to the action parameters
Hi
Any update on when this might happen ?
Thank you.