问题标签 [pybluez]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1077 浏览

python - pybluez 未检测到任何设备

我有以下 Python 代码:

这总是等待几秒钟并打印出一个空列表。

我的蓝牙适配器似乎正在工作,因为我可以bluetoothctl通过键入轻松发现设备scan on

我该如何解决/解决这个问题?

0 投票
1 回答
819 浏览

python - 安装 pybluez 失败

我想用 python 3.8 安装 pybluez 但得到这个错误:

我尝试从PyPI - Python Package Index下载它,但最新版本适用于 Python 3.5(我使用的是 Python 3.8)

0 投票
1 回答
2324 浏览

python - 无法在 Mac OS 上安装 pybluez

使用 Mac OS 版本 10.13.1 和 Python 3.6:

我已经安装成功了Python,但是当我sudo pip3 install pybluez在terminal.app中输入时,结果如下:

警告和错误信息。日志 : (1) Command "/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-01oswgn6/pybluez/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ekqpt5n6-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-01oswgn6/pybluez/

(2)Failed building wheel for pybluez (3)The directory '/Users/ringo/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

然后我google了一下,重新输入了以下命令: sudo -H pip3 install pbluez,2个错误是: (1)Failed building wheel for pybluez (2)Command "/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-krv0pwmm/pybluez/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-38mly9ts-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-krv0pwmm/pybluez/

我已经用谷歌搜索了,没有有效的方法来解决这个问题。任何人对此有任何想法表示赞赏。

0 投票
2 回答
793 浏览

python - 使用 PyCharm 安装模块的一些问题

使用 Mac 10.13.2、PyCharm 2017.3(社区版)、Python 3.6.4:

我一直在寻找高低,但没有运气,因为我尝试过的任何东西都不起作用。我已经安装Python 3.6PyCharm成功,但是当我安装模块和PyCharm时time,它让我发疯。PyBluezopenpyxl

无法安装时间模块包的答案timeThe time module is part of Python's standard library. It's installed along with the rest of Python, and you don't need to (nor can you!) install it with pip.

我安装PyBluez模块时的错误警告信息始终如下:

PermissionError:[Errno 13] 权限被拒绝:'/Users/ringo/Library/Caches/pip/wheels/e7/40/9d/b772a3cf2ca121e87a06eabe9483271816581dec7c772272d3'

安装 PyBluez 的错误信息屏幕截图

当它发生时,我更改为使用命令将其安装在终端应用程序中sudo pip3 install PyBluez

错误信息: PyBluez 的构建轮失败

命令“/usr/local/opt/python3/bin/python3.6 -u -c”导入setuptools,tokenize;file ='/private/tmp/pip-build-umoukn9i/PyBluez/setup.py';f=getattr(tokenize, 'open', open)( file );code=f.read().replace('\r \n', '\n');f.close();exec(compile(code, file , 'exec'))" install --record /tmp/pip-53lcxusy-record/install-record.txt -- single-version-externally-managed --compile" 失败,错误代码 1 在 /private/tmp/pip-build-umoukn9i/PyBluez/

安装openpyxl:openpyxl在终端应用程序中 安装后sudo pip3 install openpyxl,我重新打开了一个PyCharm项目,但该模块不在包列表中。当我import openpyxl运行该项目时,ModuleNotFoundError: No module named 'openpyxl'会出现信息。

如果我用 PyCharm 安装,错误信息和安装时一样PyBluez 没有openpyxl

如何解决问题?它需要我在继续之前滑动,所以它会减慢我的速度......如果你能分享一些我应该研究的正确方法,我将非常感激。谢谢。

0 投票
0 回答
379 浏览

python - Python 和蓝牙

我正在尽我所能通过为我的家庭自动化设置编写脚本来学习 Python。我想监控 4 个 Iphone 的存在,并且现在我想避免安装任何应用程序来处理这个问题。(是的,这既不切实际,也不是 100% 准确 - 但为什么要走简单的路线?:))

通过使用 Stackoverflow 和 Google,我能够创建一个在我的 RPI3 上运行的功能齐全的脚本,该脚本执行以下操作:

  • 创建 4 个进程(每个人一个)
  • 通过以下方式检查他们的电话是否存在:

    • ping他们的IP(使用dhcp保留)
    • 在 arp 中查找他们的 mac
    • 查找他们的蓝牙名称(使用 Pybluez)
  • 拨打我的智能家居解决方案,将虚拟开关设置为出席或离开

这一切都很好 - 除了一个事实:即使我使用三个单独的检查,我也一定会遇到这样一种情况,即使有人在家,他们 3 也会空着(因为 Iphone 因切换他们的 wifi 而臭名昭著)在深度睡眠时,蓝牙并不总是可用的)。因此,对于这些情况,我会在将它们设置为离开之前重做几分钟的检查。

总而言之,这意味着我收到了很多蓝牙电话,我现在认为这是我的问题的根源:

我随机从我的蓝牙查找中没有得到任何响应。

我尝试了两种方法:

  • bluetooth.lookup_name(macadr,超时=超时)“
  • subprocess.check_output(['hcitool', 'name', macadr])

即使我使用的是 Try/Catch,它也不会产生任何错误。话虽如此,我相当确定我的“不可见”问题是几乎同时调用查找函数的结果 - 导致“设备忙”问题。

由于我仍在学习 Python 中的技巧 - 有没有办法让我更好地控制与这些设备的通信?我应该指出,任何设备都不需要与解决方案配对。

我看到的效果可以通过同时发出“hcitool name AA:BB:CC:DD:EE:FF”从多个 shell 中重现 - 效果将是它们相互抵消。同样 - 如果我启动我的脚本并从提示符中调用“hcitool”,它将破坏我脚本中的查找。

任何输入将不胜感激。

//托马斯

0 投票
0 回答
190 浏览

raspberry-pi - RPi 3 pybluez 连接超时

在 Raspberry Pi 3 上,有没有办法设置超时,bluetoothsocket.accept以便在没有尝试连接而不是结束代码的情况下继续?

我试过settimeout了,但它结束了代码。

0 投票
1 回答
3635 浏览

bluetooth - 使用 Bluez 低功耗蓝牙读取温度计数据

我想知道是否有人愿意指导我。我正在尝试使用 gatttool 读取蓝牙温度计的温度,但我不知道如何使用指示属性。

我能够连接到设备,获取设备名称等,但事实证明,获取实际温度数据更具挑战性。

有人有想法吗?另外,如果您对我有更多问题,请告诉我。

0 投票
1 回答
2701 浏览

python - 使用 Pybluez 连接到已经配对的蓝牙设备?

我正在编写一个涉及使用蓝牙设备的 python 程序。现在我可以从 python 程序连接到蓝牙设备,但是每次我退出 python 程序时,我都必须将我的设备包带入配对模式(通过拉开关),然后再次配对。我希望你能展示任何我可以自动连接到配对设备的方法,而不是每次运行 python 程序时将其置于配对模式并再次连接。

这是我的蓝牙 python 模块的代码:

谢谢 :)

0 投票
2 回答
1454 浏览

python - 如何从 BluetoothError 获取错误代码

我有这个从蓝牙套接字读取的代码:

显然,我想区分“正常”超时和其他一些问题(例如蓝牙设备关闭)。上面的代码不起作用,因为对象中code没有BluetoothError

在例外情况下,我确实看到了一个代码:

我怎样才能得到那个代码?我尝试在线查找参考文档,但找不到任何东西。

从代码中,我可以看到它实际上是一个IOError,并且似乎没有办法获得errno,对吗?

0 投票
1 回答
1039 浏览

bluetooth - 如何使用 rfcomm 将多个安卓智能手机连接到我的 Raspberry Pi 3?

我正在尝试通过蓝牙将我的 Raspberry Pi 3 连接到三部安卓手机。我想在 python 代码中使用手机的输入,但在开始编码之前,我必须确保我可以将所有三部手机连接到 Raspberry Pi 3。

我做的以下事情是:

更改了接下来的两行:

我在智能手机上使用蓝牙串行控制器应用程序。接下来我连接通过sudo rfcomm listen hci0它工作正常。

我检查了与它的连接,minicom -D /dev/rfcomm0它也有效。我可以使用应用程序发送突击队员,它会显示在我的 Raspberry Pi 的终端上。

接下来,当该连接处于活动状态时,我尝试连接第二部手机,sudo rfcomm listen hci2它在手机上连接了一会儿,但在屏幕上它很快给了我消息

无法创建 rfcomm TTY:地址已在使用中

所以我认为这是因为我正在使用频道 1。所以我尝试sudo rfcomm listen hci2 2显示它正在频道 2 上等待。但这也不起作用。

我检查了我是否可以连接到第一个频道上的第二部手机(当它免费时)并且它可以工作。

所以我的问题是:如何使用 rfcomm 连接到多个安卓智能手机?还是有另一种更好的方法知道我想使用 Python 来使用输入?