You can now use Lua code in Ezlo scenes - How to Examples

To specifically answer @melih’s question about LUA in scenes, I think of:

  • Custom IP integrations.

I have a LUA start-up function to control my QMotion roller shades. Qmotion Blinds - #36 by wilme2 Then I reference that function in scenes. This code was for 2rd generation QMotion requiring a QConnect and an IP2SL, but I also have a 3rd generation blind with a direct IP call to a QSync.

Move a Foscam PTZ camera based on an Event. Adjust Foscam FI9826P camera position when one of the doors is opened - #2 by ceefin

  • Access functions of devices that are not available via official integration or plug-in.

Re-sync all devices on a DSC alarm panel connected to Vera via Envisalink and the DSC plug-in. DSC Plugin Getting out of Sync with Alarm System state - #9 by wilme2

  • Control anything IR/RS232 via a Global Cache IP2IR/IS2SL

Turn on my kitchen TV:

SendiTachCommand("192.168.0.125,4998,sendir,1:1,1,38000,1,1,172,172,22,64,22,64,22,64,22,21,22,21,22,21,22,21,22,21,22,64,22,64,22,64,22,21,22,21,22,21,22,21,22,21,22,64,22,21,22,21,22,64,22,64,22,21,22,21,22,64,22,21,22,64,22,64,22,21,22,21,22,64,22,64,22,21,22,1820,\r") -- Turn On Samsung TV in Kitchen

Via Startup LUA:

function SendiTachCommand(ParamString)

	local IPAddress,Port, CommandtoSend = string.match(ParamString,"(%d+.%d+.%d+.%d+),(%d+),(.+)")
	print (IPAddress)
	print (Port)
	print (CommandtoSend)

	local socket = require("socket")
	c = assert(socket.connect(IPAddress, Port))
	c:settimeout(5)

	local sres, serr = c:send(CommandtoSend)
	print("Send:", sres, serr)
	local data, rerr = c:receive(5)
	print ("Receive:", data, rerr)

 	c:close()

end