我有一个 AWS Greengrass 设置,我希望 Raspberry Pi 不断扫描 BLE 设备,如果发现任何问题,请通过 MQTT 发布消息。
我已经让脚本在 raspberry PI 上本地工作(通过 cron 运行),但是当我将脚本上传到 Lambda 并通过 Greengrass 发布时,我遇到了主 python 蓝牙包的问题bluez
。
我尝试将该函数用作长时间运行的函数以及通过消息调用到 MQTT 主题的函数。两者都会导致相同的错误。
该错误来自负责在 python 中包装本机 linux 蓝牙命令的主要 python 包之一。
from beacontools import BeaconScanner
[2018-09-25T08:37:35.311-07:00][ERROR]- self.run()
[2018-09-25T08:37:35.311-07:00][ERROR]- File "beacontools/scanner.py", line 92, in run
[2018-09-25T08:37:35.311-07:00][ERROR]- self.socket.setsockopt(self.bluez.SOL_HCI, self.bluez.HCI_FILTER, filtr)
[2018-09-25T08:37:35.311-07:00][ERROR]-error: (9, 'Bad file descriptor')