首先让我指出我的Python技能不是那么好,所以请耐心等待,如果您不介意新手问题,请跳过此问题;)
我的设置包括一个树莓派,domoticz(家庭自动化软件)和一个连接GPIO的蜂鸣器。控制蜂鸣器已经可以了,所以一切都很好。我可以从domoticz环境中启动python脚本,然后输出蜂鸣声。主要问题是domoticz脚本编制环境将等待脚本完成。因此,一个30秒的提示音循环将锁定环境30秒钟。第二个问题是,一旦我启动了该30秒脚本,就无法取消它。
所以基本上我有两个要求:
io.popen()
从另一个基于LUA的脚本中调用该脚本。猜我需要的是一些有关如何在基于Python的环境中最好地做到这一点的指导。我知道我使用C#的方式,但是没有任何线索和免责声明:我真的没有为使用Python做适当的课程而烦恼,因为这只是支持脚本编写,而我没有其他选择。
我正在使用的当前蜂鸣器脚本可以在这里找到:https://gist.github.com/jsiegmund/d25e378aff799f99bd5f71819d5a84ec
从LUA拨打电话的方式:
if (zoneText == 'Arming') then
-- Arming gives 30 seconds of delay before armed, start countdown
domoticz.log('Arming, starting buzzer 5 secs')
io.popen('python /home/pi/domoticz/scripts/buzzer.py 5')
end