test file

This commit is contained in:
lolouk44 2019-10-25 12:05:06 +01:00 committed by GitHub
parent cb1c5d8fc1
commit c6ac631837
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

75
test_xiaomi_scale.py Normal file
View file

@ -0,0 +1,75 @@
#!/usr/bin/python3
from __future__ import print_function
import argparse
import binascii
import os
import sys
from bluepy import btle
MISCALE_MAC = 'XX:XX:XX:XX:XX:XX'
if os.getenv('C', '1') == '0':
ANSI_RED = ''
ANSI_GREEN = ''
ANSI_YELLOW = ''
ANSI_CYAN = ''
ANSI_WHITE = ''
ANSI_OFF = ''
else:
ANSI_CSI = "\033["
ANSI_RED = ANSI_CSI + '31m'
ANSI_GREEN = ANSI_CSI + '32m'
ANSI_YELLOW = ANSI_CSI + '33m'
ANSI_CYAN = ANSI_CSI + '36m'
ANSI_WHITE = ANSI_CSI + '37m'
ANSI_OFF = ANSI_CSI + '0m'
class ScanProcessor():
def handleDiscovery(self, dev, isNewDev, isNewData):
if dev.addr == MISCALE_MAC.lower() and isNewDev:
print (' Device: %s (%s), %d dBm %s. ' %
(
ANSI_WHITE + dev.addr + ANSI_OFF,
dev.addrType,
dev.rssi,
('' if dev.connectable else '(not connectable)'))
, end='')
for (sdid, desc, data) in dev.getScanData():
print('')
print ('data:')
print (data)
if data.startswith('1b18') and sdid == 22:
measunit = data[4:6]
measured = int((data[28:30] + data[26:28]), 16) * 0.01
unit = ''
if measunit == "03": unit = 'lbs'
if measunit == "02": unit = 'kg' ; measured = measured / 2
if unit:
print('measured:')
print (measured)
print('unit:')
print (unit)
print('')
else:
print("Scale is sleeping.")
if not dev.scanData:
print ('\t(no data)')
print
def main():
scanner = btle.Scanner().withDelegate(ScanProcessor())
print (ANSI_RED + "Scanning for devices..." + ANSI_OFF)
devices = scanner.scan(5)
if __name__ == "__main__":
main()