CZI_presence_detector/upload.py

46 lines
1.4 KiB
Python
Raw Normal View History

2023-08-12 15:36:29 +02:00
# credits: https://gist.github.com/calebmadrigal/fdb8855a6d05c87bbb0254a1424ee582
import sys
import yaml
IDENTITIES_PATH = "identities.yaml"
def parse_wifi_map(map_path):
with open(map_path, 'r') as f:
wifi_map = yaml.safe_load(f)
with open(IDENTITIES_PATH, 'r') as f:
identities = yaml.safe_load(f)['identities']
for identity in identities:
print('mac = {}, name = {}'.format(identity['mac'],identity['name']))
devices = set()
filtered_devices = []
for ssid in wifi_map:
print('ssid = {}'.format(ssid))
ssid_node = wifi_map[ssid]
for bssid in ssid_node:
print('\tbssid = {}'.format(bssid))
bssid_node = ssid_node[bssid]
if 'devices' in bssid_node:
for device in bssid_node['devices']:
devices |= {device}
print('\t\tdevice = {}'.format(device))
for identity in identities:
if identity['mac'] == device:
filtered_devices.append(identity)
print('\n\nSSID count: {}, Device count: {}'.format(len(wifi_map), len(devices)))
print('\nFiltered devices:')
print(filtered_devices)
if __name__ == '__main__':
wifi_map_path = 'wifi_map.yaml'
if len(sys.argv) > 1:
wifi_map_path = sys.argv[1]
parse_wifi_map(wifi_map_path)