Hello – is there a luup data_request to retrieve the global startup Lua? I couldn’t find it in the wiki for Luup Requests. The goal is to automate backup of my Lua scripts, including global functions.
Background:
I have a simple python script that remotely does an http request to retrieve all scene Lua. That way, I can more easily validate Lua (e.g. simply load it in VIM), search scene Lua for references that I change in the global Startup Lua, and add scene Lua to source repository, etc. I similarly want to do the same for Startup Lua.
It’s pretty straight forward using Python (Python2 in my case). This example simply prints out all Lua from StartupCode and scenes (including triggers):
import socket
import httplib
import urllib
import json
if __name__ == "__main__":
local_zwave_server = 'xxx.xxx.xxx.xxx'
zwave_port = 3480
def get_user_data():
zwave = httplib.HTTPConnection(local_zwave_server, zwave_port)
params = urllib.urlencode({'id': 'user_data', 'output_format': 'json'})
zwave.request("GET", "/data_request?%s" % (params))
resp = zwave.getresponse().read()
return resp
try:
user_data = get_user_data()
user_data_doc = json.loads(user_data)
print ("-- StartupCode")
print (user_data_doc["StartupCode"])
for scene_doc in user_data_doc["scenes"]:
if scene_doc.has_key("lua"):
print ("-- Scene %s" % (scene_doc["name"]))
print (scene_doc["lua"])
if scene_doc.has_key("triggers"):
for trigger_doc in scene_doc["triggers"]:
print ("-- Scene %s, Trigger %s" % (scene_doc["name"], trigger_doc["name"]))
print (trigger_doc["lua"])
except socket.error:
print ("Communication error with ZWave server.")
Thanks - Joel
Best Home Automation shopping experience. Shop at Ezlo!