-- Scheduling inputs for Astra 5.62 and newer -- -- In the web interface create new stream -- Remember stream ID. In this example stream ID is a001 -- Save this script to /etc/astra/mod/schedule.lua -- Write your own time map schedule = { ["a001"] = { { -- Mon { 07, 00, 2 }, -- on 7:00 turn on second input { 07, 30, 1 }, -- on 7:30 turn on first input { 12, 30, 2 }, { 13, 00, 1 }, { 19, 00, 2 }, { 19, 30, 1 }, }, { -- Tue { 07, 00, 2 }, { 07, 30, 1 }, { 12, 30, 2 }, { 13, 00, 1 }, { 19, 00, 2 }, { 19, 30, 1 }, }, { -- Wed { 07, 00, 2 }, { 07, 30, 1 }, { 12, 30, 2 }, { 13, 00, 1 }, { 19, 00, 2 }, { 19, 30, 1 }, }, { -- Thu { 07, 00, 2 }, { 07, 30, 1 }, { 12, 00, 2 }, { 13, 00, 1 }, { 19, 00, 2 }, { 19, 30, 1 }, }, { -- Fri { 07, 00, 2 }, { 07, 30, 1 }, { 12, 00, 2 }, { 13, 00, 1 }, { 19, 00, 2 }, { 19, 30, 1 }, }, { -- Sat { 12, 30, 2 }, { 13, 00, 1 }, }, { -- Sun }, }, } -- Keep code below as is function get_current_input(map) local i = 1 local ct = os.date("*t") ct.wday = ct.wday - 1 if ct.wday == 0 then ct.wday = 7 end for _,v in ipairs(map[ct.wday]) do if ct.hour < v[1] then break elseif ct.hour == v[1] then if ct.min < v[2] then break end end i = v[3] end return i end timer({ interval = 5, callback = function(self) for k,v in pairs(schedule) do local channel_data = channel_list_ID[k] if k then local i = get_current_input(v) if i ~= channel_data.current_input_id then channel_kill_input(channel_data, channel_data.current_input_id) channel_init_input(channel_data, i) end end end end })