-
Do you think it could be possible to have a custom device for "dimmer" that instead of having the slider from 0 to 99 will give us Off/Low/Medium/High and will send 0,30,60,90 ?
-
I'm a fan of the SendConfig call action in a couple of scene...
Did you implement something like GetConfig ?
I have a couple of scene that I would need to do a GetConfig to do something based on the value...
-
I was trying to change the ID of a couple of scenes and came to the conclusion you can't do this without stopping openLuup, hacking user_data.json and restarting openLuup, which is a pain. (May be this could be added to openLuup ie be able change any scene ID to a non used one.)
So I figured I would try and clone some of the scenes with the idea that I could then manually swap their contents around. Why would I want to do this? Just to make my scene management a bit more simple as all my scenes call the one pile of Lua code. I also wanted to make use of unused scene IDs sprinkled through the scene ID list.
My understanding was the clone would occupy the first unused scene ID. Using AltUI, it just adds the clone on to the end of the list of scene IDs. In openLuup using the console page it failed to create the clone. Hits the URL OK:
http://openLuup:3480/console?action=clone&scene=14Says this in the log:
GET /console?action=clone&scene=14 HTTP/1.1 tcp{client}: 0x2c05008Searched high and low and no clones to be found.
I see that AltUI does a create when it clones:
openLuup.server:: GET /data_request?id=scene&action=create&json=WITH_ALL_THE_SCENE_INFO_HEREAny ideas?
-
I woke up to one of the lights in the hallway dimming up and down constantly.. when i tried to open reactor logic summary, there was something weird with the GUI?
The "Tools" tab resizes so i can't reach the logic summary button:
24f6b3f7-cfca-45ba-b568-7c6f5a31ddd7-image.pngThe Reactor instance in Altui pages was also empty, no buttons or text on them, only the icon..
I have a virtual switch to turn on all lights using reactor, and that one worked from the tablet in the kitchen, so reactor was functioning OK..
I reloaded luup and hard refreshed the browser, and all but the "Tools" page is now back to normal.. @toggledbits ?
EDIT: Theres supposed to be some text in the headers on this page, isn't it?
70159d9d-85fc-4606-b38b-49f2909dce72-image.png -
Have you ever considered running openLuup under LuaJIT instead of Lua5.1 interpreter?
The LuaJIT Project
For kicks, I switched my installation to the latest LuaJIT2.1 beta3 dating from 2017 and being a lua5.1 interpreter it is a drop in replacement. I had to move the lfs library from one folder to another likely because of an include path difference but I am seeing a further speed/efficiency improvement vs. lua5.1.
My CPU load has dropped another 25% to now hover around 2.2% down from 2.8%. I have yet to make sure that everything else works but so far everything appears to be the same.
The luajit site claims up to 5x speed increase through the interpreter and 120x improvement through the compiler vs the standard lua5.1.Screen Shot 2020-07-05 at 23.10.02.png
My initial interest was from being able to access some ffi libraries to handle video streams...
PS: Wow it is pretty impressive under load... browsing through ALTUI which used to cause spikes of CPU utilization from 2.8% to 4.8% now only go from 2.3% to 2.6%. It almost looks like noise. I am running it on a pretty fast x64 thread so it may not be that significant but this could make a big difference on ARM.
-
Windows Subsystem for Linux (WSL) is a compatibility layer for running Linux binary executables natively on Windows 10.
This is one way to run openLuup under Windows without having to worry whether any of your plugins require a Unix/Linux environment – this way, they actually get one.
Many flavours of Linux are available for WSL from the Microsoft Store – my favourite, to date, is Alpine WSL, which is a tiny (~8 Mb) and lightweight WSL distro based on musl, uses busybox, and just contains the most important things to be functional.
Here's a rough guide to getting openLuup going under Alpine WSL
Enable WSL on via the Windows control panel Install the Alpine WSL app from the Microsoft Store Start the Alpine application Install Lua and some libraries:Alpine comes with a really full set of Lua libraries available for install. You need to be su to install them:
# apk add curl # apk add lua5.1 # apk add lua5.1-md5 # apk add lua5.1-cjson # apk add lua5.1-filesystem # apk add lua5.1-bitop # apk add lua5.1-sec You need to make the file system permanent: $ cd /mnt/c/ $ mkdir cmh-ludl $ cd cmh-ludl Now get and install openLuup and AltUI: $ wget https://github.com/akbooer/openLuup/raw/master/Utilities/openLuup_install.lua $ lua5.1 openLuup_install.luaWhen finished (it won't yet return to the command prompt)
access openLuup via the URL: IP:3480/openLuup Update to latest version (Plugins page, type development in Update box) Install VeraBridge (Device Table > Create D_VeraBridge.xml / I_VeraBridge.xml) Add IP of Vera to VeraBridge attributes Reload VeraBridge device > Actions > GetVeraFiles (wait ~2 minutes) ReloadSimple!
-
A long while ago (May, 2015) I wrote my 2000-th post on another forum: openLuup - running unmodified plugins on any machine. Here’s the gist of it:
...I want to work in a more open and stable [Vera] environment...
...All would be solved if Luup was open source and could be run on the plethora of cheap and reliable hardware available today. But it’s not. But we could get something like that effect if we engineered a sufficient subset of Luup to run on such a platform. Could it be done? What would we need?
1. UI
2. scheduler
3. web server
4. Luup compatible API
5. Device and Implementation xml file reader
6. Zwave bridge to Vera
7. runs most plugins without modificationWhat we wouldn’t need is UPnP.
What have we (nearly) got already?
We have, courtesy of @amg0, the most excellent AltUI: Alternate UI to UI7, and that, I think, is probably the hardest one to do in the above list. Items 2 - 5, and 7, I’ve prototyped, in pure Lua, and posted elsewhere: DataYours on Raspberry Pi, running selected plugins unmodified, including: DataYours, EventWatcher, Netatmo, RBLuaTest, altUI. See screenshot attached.Is it worth the effort? Probably not. Will I pursue this quest? Yes.
openLuup was the result.
-
Evening, all. Hope you're all well.
Did the logging line count / rotation challenge ever get sorted? I'm needing to look back at some historical events and my oldest log is barely 3 hours ago. (Not that I can recall how to try and change the line numbers etc)
Cheers!
C
-
I've been fiddling with the zigate plugin, as the dongle arrived.. I installed the app from appstore, and saw that the plugin files were not installed properly.
Downloaded the zip files and put all luup files in the cmh_ludl folder. Reloaded luup, and it was in and looking ok
I then entered the IP for it to communicate with the dongle, and reloaded luup.Now the openluup service is running, but i can't get into either altUI or openluup console.
I tried rebooting, stopping and starting the service, no effect.
the logs doesnt seem to be updated either. Now what?
-
I'm trying to do this now that I have migrated the siren to Zway. Here's the thread from the Vera forums on how to do it with a Vera: https://community.getvera.com/t/playing-sounds-on-the-zooz-siren-zse19/211318
I'm guessing something needs to change in the code since previously it was calling out the vera specifically.
Here's what shows up in the logs when I tried to use Reactor for the SendData. Zway plugin is device 18. And my siren is device number 95 in my Zway network.
2020-12-01 15:37:27.052 openLuup.server:: POST /data_request HTTP/1.1 tcp{client}: 0x56194138c448 2020-12-01 15:37:27.052 luup.call_action:: 18.urn:micasaverde-com:serviceId:ZWaveNetwork1.SendData 2020-12-01 15:37:27.053 openLuup.server:: request completed (151 bytes, 1 chunks, 0 ms) tcp{client}: 0x56194138c448 2020-12-01 15:37:27.079 luup_log:18: ZWay: http://127.0.0.1:8083/ZWaveAPI/Run/SendData(95,x79 8 35) 2020-12-01 15:37:27.079 luup_log:18: ZWay: SyntaxError: Unexpected number 2020-12-01 15:37:27.184 openLuup.server:: request completed (8606 bytes, 1 chunks, 5939 ms) tcp{client}: 0x561941d02fe8 -
While i wait for a replacement app for my local UI devices, i want to use imperihome as long as I can.. But i'm missing a lot of devices!
All Z-Way bridge devices, all security/smoke and motion sensors (local RFXtrx child devices)..
Found the "include vera bridge" in imperihome.lua, what else could cause this?
-
I downloaded ZeroBrane Studio to see if I could make sense of this lua language. @akbooer mentioned that this is what he uses for development, and i thought i could learn alot from seeing how openluup runs.
How do I proceed in order to run openluup in zerobrane? I guess i need to do that to see how scripts like the imperihome ISS script works?
I installed on a windows machine, will I have to run it in linux for it to work?
-
Hi @mrFarmer,
I also have a question about ImperiHome:
I'm trying to configure imperihome with openluup.
Imperihome recognizes the new system, with all devices, status feedback is perfect.
If I turn on something on imperihome, it will seem to be temporarily turned on and then turn off. Device does not actually change.
Can you help me with what could be the problem?
Thanks.
Krisztian -
Hi,
I have a couple of luup request, one is a request to VeraAlexa pluging to make alexa speak, the other updating a variable in reactor. They all seem to have a 10-20 second delay
example request
http://192.168.1.134:3480/data_request?id=action&DeviceNum=44&serviceId=urn:toggledbits-com:serviceId:ReactorSensor&action=SetVariable&VariableName=A_home&NewValue=1I can not figure out what is causing the delay, does anyone have any ideas?
-
-
Hi guys,
I was wondering what you guys use for push notifications on openluup. I still use VeraAlerts on my vera, but am searching for an alternative that runs on openluup.
Thanks!
-
I'm using RulesEngine plugin for a while, couple of years, and of course, the plugin is not getting any update as @vosmont stop to update/upgrade this plugin!
I attached one rule, if, by any chance, I would like to convert all my rules to something "native" in openLuup...
is it something possible ?
In the PDF you can see what a rule looks...ALTUI.pdf -
I have some code failing on Vera from time to time. All I got is:
attempt to call a string valueand usually a luup.reload will fix it. It should be something related to startup and scene collision.
Is there a way to really trace lua calls? I'm a DIY regarding LUA and I'm sure there should be a better way to trace and debug errors.
I'll try to code something in order to detect this situation and reload luup, because it's blocking my scenes.
Yes, I know I should migrate all my logic to openLuup, but I can't at the moment.
-
Hi guys,
I’m researching the move away from Vera and z-way has the most chance at this point. However, I came across the geolocation aspect of my setup.
I now use Vera Proximity. It works, but is not the most ideal solution. This won’t be an option anymore after I’ve migrated, so I was wondering what you guys use for geolocation.
-
so, @rigpapa did it: https://github.com/toggledbits/Vera-Decouple
It's completely decoupling Vera from the cloud. Very cool stuff. /cc @rafale77 @akbooer
luaJIT
-
Have you ever considered running openLuup under LuaJIT instead of Lua5.1 interpreter?
For kicks, I switched my installation to the latest LuaJIT2.1 beta3 dating from 2017 and being a lua5.1 interpreter it is a drop in replacement. I had to move the lfs library from one folder to another likely because of an include path difference but I am seeing a further speed/efficiency improvement vs. lua5.1.
My CPU load has dropped another 25% to now hover around 2.2% down from 2.8%. I have yet to make sure that everything else works but so far everything appears to be the same.
The luajit site claims up to 5x speed increase through the interpreter and 120x improvement through the compiler vs the standard lua5.1.My initial interest was from being able to access some ffi libraries to handle video streams...
PS: Wow it is pretty impressive under load... browsing through ALTUI which used to cause spikes of CPU utilization from 2.8% to 4.8% now only go from 2.3% to 2.6%. It almost looks like noise. I am running it on a pretty fast x64 thread so it may not be that significant but this could make a big difference on ARM.
-
Have you ever considered running openLuup under LuaJIT instead of Lua5.1 interpreter
I run under LuaJIT every day, as a matter of course in my development system. It’s hard to tell the performance improvement without direct metrics, but it’s certainly faster.
With cpu rates at around a few percent, does it really matter? I’d remind you that Vera typically ran at 20% when doing absolutely nothing!
But it’s certainly a viable option if you want (need?) to squeeze the last bit of performance.
-
Thank you for confirming! I had seen this name around but never really knew what it was and never investigated it. I just ran into it, as I said, finding out that it opens to some additional extensions I was interested in so the perfomance is just a side benefit.
That being said, more efficient system means more scalability and less power consumption and heat... even if it is a mere few percent.For others who may be interested, here is some reading references on how it opens the door to extending lua
Including this blog post from an 20 year old coder
As an example, one can now use libcurl directly within lua!
-
And this is what got my attention:
Ability to process video streams within lua.
-
I just compiled and installed the OpenResty branch of luaJIT along with updating libc.
After reboot, the cpu load is now... ~1.5%
You can see the steps below:
On the left it is using the lua5.1 interpreter hovering around 2.8%, the middle plateau is using a 2017 beta version of luaJIT: ~2.2%, the rightmost plateau at ~1.5% is after the latest update...
As a reminder I previously reduced the cpu load by swapping the json module from cjson to rapidjson which only lowered the "idle" cpu load baseline from 3.2% to 2.8% but was most impactful when the dkjson module was in use (i.e ALTUI page loading) which reduced the spike from >10% down to <5%.... to now not even showing a peak. It remains <2% (they are the little peaks on the right side going up to ~1.8%). Overall these steps reduced idle CPU load by ~50% and ALTUI browsing load by ~95%. -
Really interesting (and quite new) paper from the same stable as Lua, discussing, amongst other things, JIT in the context of high performance computing and Lua.
-
guys....
so we can just install luajit package and instead of calling
lua5.1 openLuup/init.lua
we can use luajit openLuup/init.lua ?
-
That’s effectively what I do.
In actual fact, I develop within the ZeroBrane Studio IDE, and simply select LuaJIT as the runtime environment. Not sure if you need anything in the way of libraries compiled that way too, but should be OK.
-
-
guys....
so we can just install luajit package and instead of calling
lua5.1 openLuup/init.lua
we can use luajit openLuup/init.lua ?
Yup Drop-in replacement. It even reuses all the lua5.1 library folders.
Pallene seems real enough, in active development:
Go on, @rafale77, give it a go!
Only thing which makes me hesitant is lua5.3... Are there deprecation issues?
-
Only thing which makes me hesitant is lua5.3... Are there deprecation issues?
Oh, absolutely. The whole arrangement for function environments changed in v5.2.
I was thinking you might just want to fire it up on a stand-alone program, but I'll ask again when I have a v5.3 version of openLuup. It's actually 'only' a matter of changing a few places in the loader and scheduler modules. I've never done it because I felt it necessary to retain as much compatibility with Vera as possible. But now, it really doesn't matter – aside from installing Lua in the first place, there should anyway be no apparent change for any plugin or from the user POV.
I actually have more need of this in my other current project, so perhaps I'll try it there first.
Anyway, as with your investigations for LuaJIT, it's nice to have an option for future speed-ups as our HA needs get more sophisticated.
-
Looking forward a lua5.3 openLuup!!
I have been spending my "dev" time on optimizing facial detection... on python. It is a pretty convoluted collage of libraries and coordination of threads to distribute between cpu and gpu... so much to learn...
-
Well I finally found something which does not work on luajit: http-digest.
I will be experimenting with some other http libraries...edit: I am thinking about switching my one plugin requiring digest authentication to cURL:
Wondering if it could be a good alternative to luasocket for openluup's http construct...
-
I’ve looked at Lua-cURL previously to replace the ‘temporary’ fix using os.execute("curl ...") in the AltAppStore plugin (to get around some LuaSocket issues.). It’s a possibility.
-
I have fixed my digest problem using the luajit-request library which indeed relies on the libcurl integration in luaJIT's ffi.
I am not quite sure why it broke the http-digest library though but overall cURL may be a better supported/more robust solution than luasocket for http...I also found this:
-
-
You are right... this library won't work on non POSIX OS so it may not be the best choice.
My setup works now but I am a bit off a tangent having to use an ffi library to fix a digest call.
I was just trying to bring it back to something which can be used more broadly in case others run into this problem:
on lua5.1... works as is with the old http-digest
on luajit... need to switch to luajit-request which depends on ffi-libcurl.cqueues is what that library uses for... async calls. I am wondering how it compares to your async implementation.
-
IIRC, the openLuup implementation of
luup.inet.wget()
implements digest headers. -
It does, I tried it. It works with the interpreter. It is inspired from the http-digest I had been using and does not work on luajit... and I don't know why.
-
Well, it has a dependence on the md5 library, does that work under LuaJIT?
If not, there are other ways of achieving that.