You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua如何实现获取1-4范围内排除指定输入值的其余可用数值

Lua Luup 环境下HDMI矩阵输入源状态切换实现方案

你可以通过遍历1-4的输入源编号,匹配当前激活值的方式一次性完成点亮与关闭操作,无需单独生成剩余数值列表,具体实现如下:

完整实现代码

-- 替换为你实际查询接口返回的当前在用输入源编号
local current_active_input = 2

-- 遍历所有4个输入源,自动设置对应状态
for input_id = 1, 4 do
    local target_state = input_id == current_active_input and 'true' or 'false'
    -- 注意:请将下方代码末尾的[你的设备ID]替换为你的HDMI矩阵对应的luup设备编号
    luup.variable_set("urn:upnp-net:serviceId:Matrix1", "input"..input_id, target_state, [你的设备ID])
end

逻辑说明

  • Lua中使用..实现字符串拼接,"input"..input_id会自动生成input1、input2等符合你参数要求的变量名
  • 上述代码一次性完成了激活按钮点亮、未激活按钮关闭的操作,无需分两次执行
  • 如果你的业务逻辑要求必须分开执行点亮和关闭操作,可以使用以下写法:
local current_active_input = 2
-- 先点亮激活的输入源
luup.variable_set("urn:upnp-net:serviceId:Matrix1", "input"..current_active_input, 'true', [你的设备ID])

-- 遍历关闭其余输入源按钮
for input_id = 1, 4 do
    if input_id ~= current_active_input then
        luup.variable_set("urn:upnp-net:serviceId:Matrix1", "input"..input_id, 'false', [你的设备ID])
    end
end

注意事项

你贴出的luup.variable_set调用缺少第四个参数(设备编号),实际运行时需要替换为你自己的HDMI矩阵设备对应的luup ID,否则接口调用会失败。

内容的提问来源于stack exchange,提问作者nodecentral

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:15:04