-
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
openLuup Hangs
-
This is a rare hang/crash of openLuup but I was able to reproduce it pretty consistently now:
I get close to house, and open homewave, it starts a poll to openLuup.
Before the poll completes, my phone drops from the VPN for one reason or another and causes openLuup to hang.
Most of the time, it is because the phone switches to wifi as I am at home. Sometimes, it is because the signal is weak and the VPN tunnel gets dropped.It order to alleviate this, I have to wait until I am on wifi before opening wifi when I get home.
@akbooer , Any way to fix this problem?
-
We’ve talked about this elsewhere before... usually related to a network problem or bridged Vera reload.
I’m pretty sure it’s somewhere in the LuaSocket library, which, TBH, doesn’t handle timeouts very well. I tried to code around this in several places, but must be missing something. Very hard to isolate the issue.
-
Indeed, I just wasn't quite sure before but I ran a couple of tests to reproduce today and it is pretty consistent. I am also confident that it is the only way openLuup has crashed for me...
It is when a json is being sent to a client asking for it but the file transfer never gets completed as the client gets disconnected. If I try to kill openLuup on linux under this situation it actually goes through a 90s timeout before killing the process.
Knowing what I know of openLuup, yeah I would think it is in the luasocket but I was wondering if there was a workaround possible. -
@rafale77 said in openLuup Hangs:
under this situation it actually goes through a 90s timeout
Now that's interesting. There is a default 90 seconds timeout on the HTTP server. It has to be greater than 60 seconds, because that is the interval in which a status request will respond in the event of no other state changes.
-
From the LuaSocket docs at http://w3.impa.br/~diego/software/luasocket/tcp.html
master:settimeout(value [, mode])
client:settimeout(value [, mode])
server:settimeout(value [, mode])
Changes the timeout values for the object. By default, all I/O operations are blocking. That is, any call to the methods send, receive, and accept will block indefinitely, until the operation completes. The settimeout method defines a limit on the amount of time the I/O methods can block. When a timeout is set and the specified amount of time has elapsed, the affected methods give up and fail with an error code.
The amount of time to wait is specified as the value parameter, in seconds. There are two timeout modes and both can be used together for fine tuning:
'b': block timeout. Specifies the upper limit on the amount of time LuaSocket can be blocked by the operating system while waiting for completion of any single I/O operation. This is the default mode;
't': total timeout. Specifies the upper limit on the amount of time LuaSocket can block a Lua script before returning from a call.The problem, if this is the solution to the problem, is that the HTTP module wrapper makes this level of control unreachable.
I had briefly looked at alternative HTTP / TCP implementation libraries, but honestly, Luasocket is so deeply embedded in Vera that this is hardly feasible.
-
I came to the same potential solution but was wondering if these timeouts could be set somewhere in the openLuup code. Not knowing which function is actually sending the user_data in response to the Homewave call, I did not know where to attempt inserting these timeouts... in the server.lua file maybe?
-
Sorry for reviving this @akbooer but I wanted to give a quick update on lua socket.
I realized that the library used by luarocks is very old (3.0 RC1 from 2013) and that the apt debian/ubuntu version is a little newer (March 2015). The library has since gone through 5 years of development and I just installed the latest github version using this command:luarocks install luasocket --server https://luarocks.org/dev
It compiles the library from the current GitHub master. I am not sure it will help but so far it has not hurt. Will test further...
-
No need to apologise... this issue needs to be fixed!
-
Well first problem after updating the lua socket:
.
I had some lua code sending an url with spaces which I did not have to url encode. Now I have to. luckily it is pretty straightforward to do with "url.escape(content)":
On the other hand... somehow I feel that the response is a lot faster... I may be dreaming and will need to test this more but homewave seems to have no lag on polling. I don't remember seeing this before.
-
Well with the communication being seemingly faster, I am now having a hard time reproducing the problem. I will post back if I am able to but so far, no hanging occurring. Even ALTUI seems to be updating its data from openLuup faster.
-
Update: I can't seem to reproduce the problem anymore in spite of trying hard even in manners which would frequently create this problem before so I think the luasocket update is potentially a fix for these openluup lockups (really lua socket lockup to be accurate).
Edit: Nope... I really can't reproduce the lock up anymore. I tried at least 20x the same scenario which would cause a lockup every 3rd time: Opening Homewave on my iPhone and have it poll openLuup while the phone is in the middle of switching between VPN through LTE and wifi. Granted I don't know whether it is because the poll completes much faster or if it is that lua no longer locks up. This may really be fixed. Can anybody else who has run into this problem confirm?
-
@akbooer, I am now fairly positive that the updated luasocket fixes the lockups. Been running for two days with full intent to lock it up trying all kinds to interruptions and I haven't been able to get it to hang. Maybe it could be part of the installation recommendations?
-
Excellent!
Have you checked that async HTTP is, in particular, OK?
I ask, because it delves deep into the LuaSocket library, so it’s not unlikely that something changed.
Does the update instruction you gave above work on a RPi? I need to give this a go!
I’ll be pleased to confirm that it’s not due to any openLuup-specific code!
-
Yes it works very well with the async http calls as well as I have a lot of my code making use of it.
The update method works, it asks luarocks to pull from the dev repo and should build and install version "scm2". It should be platform agnostic. (the command actually rebuilds the library).
The only thing I had to do is the url encode for spaces which makes use of the http_async module for which I had to change the url input by encoding the space in the url(%20).
-
Hi AK, please let me know if you have a version that works with the new lua socket. I have an other websocket problem and would be nice to see if this helps.
Cheers Rene
-
There is no update needed to openLuup itself. You only need to update the luasocket library...
-
Did the update openLuup still works. Did not help for my websocket issue though. If openLuup starts it connects just fine, but if connection is lost and I close and reconnect no data is received. Need to dig some more.
-
Maybe explain what module you are using? I had a similar issue with one of my plugins and I ended up slightly modifying the io module in openLuup. Maybe try my branch on GitHub?
-
I'm using the websocket module rigpapa created (with some fixes) https://github.com/reneboer/LuWS/blob/master/luws.lua to talk to the new Ezlo ws API. This is part of the EzloBridge i am making based on your VeraBridge as we spoke about. Just put that on GitHub https://github.com/reneboer/EzloBridge.
It is working except when the websocket gets interrupted. Also needs some better error handling etc.
-
Maybe a problem with the web socket itself? What is the source of the interruption?
As I said above, I have been desperately trying to reproduce my old problem with interrupting either the io connection or an http request response which used to make openluup or rather luasocket hang and I have no longer able to do so with the updated luasocket version.