Python bluepy.btle.btlemanagement错误:未能执行管理命令';乐安';(代码:20,错误:权限被拒绝)

Python bluepy.btle.btlemanagement错误:未能执行管理命令';乐安';(代码:20,错误:权限被拒绝),python,bluetooth,raspberry-pi,Python,Bluetooth,Raspberry Pi,我使用并修改了如下所示的代码: 我遇到的问题是,设备似乎阻止我访问它的值,尽管我对此不确定 这是我的密码: from bluepy.btle import Scanner, DefaultDelegate import time import struct SENSOR_ADDRESS = [""ec:fe:4e:12:b8:72""] class DecodeErrorException(Exception): def __init__(

我使用并修改了如下所示的代码:

我遇到的问题是,设备似乎阻止我访问它的值,尽管我对此不确定

这是我的密码:

from bluepy.btle import Scanner, DefaultDelegate
import time
import struct


SENSOR_ADDRESS = [""ec:fe:4e:12:b8:72""]

class DecodeErrorException(Exception):
     def __init__(self, value):
         self.value = value
     def __str__(self):
         return repr(self.value)

class ScanDelegate(DefaultDelegate):
    def __init__(self):
        DefaultDelegate.__init__(self)

    def handleDiscovery(self, dev, isNewDev, isNewData):
        if isNewDev:
            print("Discovered device", dev.addr)
        elif isNewData:
            print("Received new data from", dev.addr)


scanner = Scanner().withDelegate(ScanDelegate())

ManuDataHex = []
ReadLoop = True
try:
    while (ReadLoop):
        devices = scanner.scan(2.0)
        ManuData = ""

        for dev in devices:

            entry = 0
            TempData = 0

            for saddr in SENSOR_ADDRESS:

                entry += 1

                if (dev.addr == saddr):

                
                    CurrentDevAddr = saddr
                
                    for (adtype, desc, value) in dev.getScanData():
                   
                        if (desc == "Manufacturer"):
                            ManuData = value

                    if (ManuData == ""):
                        print("No data received, end decoding")
                        continue

                    print(ManuData)
                    for i, j in zip(ManuData[::2], ManuData[1::2]):
                        ManuDataHex.append(int(i+j, 16))

                
                    if ((ManuDataHex[0] == 0x85) and (ManuDataHex[1] == 0x00)):
                        print("Header byte 0x0085 found")
                    else:
                        print("Header byte 0x0085 not found, decoding stop")
                        continue


                    idx = 7

                    print("TotalLen: " + str(len(ManuDataHex)))
                    while idx < len(ManuDataHex):

                          if (ManuDataHex[idx] == 0x43):

                              idx += 1
                              TempData = ManuDataHex[idx]
                              TempData += ManuDataHex[idx+1] * 0x100
                              TempData = TempData * 0.0625
                              idx += 2
                          else:
                              idx += 1

                    print("Device Address: " + CurrentDevAddr) 
                    print("Temp Data: " + str(TempData))
                 
                    ReadLoop = False


except DecodeErrorException:
    pass
从bluepy.btle导入扫描程序,DefaultDelegate
导入时间
导入结构
传感器地址=[“ec:fe:4e:12:b8:72”“]
类DecodeErrorException(异常):
定义初始值(自身,值):
自我价值=价值
定义(自我):
返回报告(自身值)
类ScanDelegate(DefaultDelegate):
定义初始化(自):
DefaultDelegate.\uuuuuu初始化\uuuuuuuuuuuuu(自)
def handleDiscovery(self、dev、isNewDev、isNewData):
如果isNewDev:
打印(“发现的设备”,dev.addr)
elif isNewData:
打印(“从”,dev.addr收到新数据)
scanner=scanner()。带委托(scannelegate())
ManuDataHex=[]
ReadLoop=True
尝试:
while(ReadLoop):
设备=扫描仪。扫描(2.0)
ManuData=“”
对于设备中的开发人员:
条目=0
TempData=0
对于传感器地址中的SADD:
条目+=1
如果(dev.addr==saddr):
currentdavddr=saddr
对于dev.getScanda()中的(adtype、desc、value):
如果(描述=“制造商”):
ManuData=值
如果(ManuData==“”):
打印(“未收到数据,结束解码”)
持续
打印(手动数据)
对于zip中的i,j(ManuData[::2],ManuData[1::2]):
ManuDataHex.append(int(i+j,16))
如果((ManuDataHex[0]==0x85)和(ManuDataHex[1]==0x00)):
打印(“找到页眉字节0x0085”)
其他:
打印(“未找到头字节0x0085,解码停止”)
持续
idx=7
打印(“总计:+str(len(ManuDataHex)))
当idx
例外情况如下:

回溯(最近一次呼叫最后一次): 文件“/home/pi/Desktop/lameteo/print.py”,第31行,在 设备=扫描仪。扫描(2.0) 文件“/usr/local/lib/python3.7/dist-packages/bluepy/btle.py”,扫描中的第852行 自启动(被动=被动) 文件“/usr/local/lib/python3.7/dist-packages/bluepy/btle.py”,第790行,开始 自我管理指令(“乐开”) 文件“/usr/local/lib/python3.7/dist-packages/bluepy/btle.py”,第312行,在_-mgmtCmd中 raise BTLEManagementError(“未能执行管理命令'%s'”(cmd),rsp) bluepy.btle.btlemanagement错误:无法执行管理命令“le on”(代码:20,错误:>权限被拒绝)

如果你在这方面有任何专长,我将非常感谢你的帮助