Exemple #1
0
    def start():
        adapter = get_provider().get_adapter()

        q = Queue()

        observer = Observer(adapter)
        observer.on_advertising_data = q.put  # Put advertisement to queue

        observer.start()

        return (observer, q)
Exemple #2
0
def sensor_data(json):

    print('sensor message:', json)
    if(json['sensorStatus'] == 'True'):
        adapter = get_provider().get_adapter()

        observer = Observer(adapter)
        observer.on_advertising_data = on_advertisement
        observer.start()
        time.sleep(5)
        observer.stop()
        emit('tempHumSensorUpdate', govee_devices)
    else:
        emit('tempHumSensorUpdate', {'data': 'data disabled'})
    def __init__(self, publishers, params):
        """Initializes the listener and kicks off the listening thread."""
        super().__init__(publishers, params)

        self.dest_root = params("Destination")

        self.log.info("Configuring Govee listener with destination %s",
                      self.dest_root)

        self.adapter = get_provider().get_adapter()
        self.observer = Observer(self.adapter)
        self.observer.on_advertising_data = self.on_advertisement
        self.observer.start()

        # Store readings so they can be reported on demand.
        self.devices = {}
def start_listen_ble():
    try:
        adapter = get_provider().get_adapter()
        global receiver_mac
        receiver_mac = adapter.get_device_info().address.address

        observer = Observer(adapter)
        observer.on_advertising_data = on_advertisement

        observer.start()
    except OSError:
        print(
            "Error listening for BLE advertisements, using fixed test data instead"
        )

        start_send_test_data()
Exemple #5
0
    def __init__(self, publisher, logger, params, sensors, actuators):
        """Initializes the listener and kicks off the listening"""

        self.logger = logger
        self.dest_root = params("Destination")
        self.publish = publisher

        self.logger.info(
            '----------Configuring Govee listener with destination {}'.format(
                self.dest_root))

        self.GOVEE_BT_MAC_PREFIX = "A4:C1:38"
        self.H5075_UPDATE_UUID16 = UUID16(0xEC88)

        self.adapter = get_provider().get_adapter()
        self.observer = Observer(self.adapter)
        self.observer.on_advertising_data = self.on_advertisement
        self.observer.start()
        self.poll = -1
        self.devices = {}
Exemple #6
0
    def __init__(self, callback, bt_device=''):
        '''
        Arguments:
           callback: Function that receives the data from BLE
           device (string): BLE device (default 0)
        '''
        super().__init__(callback, bt_device)

        self.observer = None

        if not bt_device:
            bt_device = 0
        else:
            # Old communication used hci0 etc.
            bt_device = bt_device.replace('hci', '')

        log.info('Observing broadcasts (device %s)', bt_device)

        adapter = get_provider().get_adapter(int(bt_device))
        self.observer = Observer(adapter)
        self.observer.on_advertising_data = self.handle_callback
Exemple #7
0
    def start(bt_device=''):
        '''
        Attributes:
           device (string): BLE device (default 0)
        '''

        if not bt_device:
            bt_device = 0
        else:
            # Old communication used hci0 etc.
            bt_device = bt_device.replace('hci', '')

        log.info('Start receiving broadcasts (device %s)', bt_device)

        q = Queue()

        adapter = get_provider().get_adapter(int(bt_device))
        observer = Observer(adapter)
        observer.on_advertising_data = q.put
        observer.start()

        return (observer, q)
#!/usr/bin/env python3

import sys
from time import sleep
from bleson import get_provider, Observer

# Get the wait time from the first script argument or default it to 10 seconds
WAIT_TIME = int(sys.argv[1]) if len(sys.argv) > 1 else 10


def on_advertisement(advertisement):
    print(advertisement)


adapter = get_provider().get_adapter()

observer = Observer(adapter)
observer.on_advertising_data = on_advertisement

observer.start()
sleep(WAIT_TIME)
observer.stop()
Exemple #9
0
#!/usr/bin/env python3

import sys
from time import sleep
from bleson import get_provider, Observer
from bleson.logger import log, set_level, DEBUG

#set_level(DEBUG)

# Get the wait time from the first script argument or default it to 10 seconds
WAIT_TIME = int(sys.argv[1]) if len(sys.argv) > 1 else 10

with Observer(get_provider().get_adapter(), lambda device: log.info(device)):
    sleep(WAIT_TIME)
Exemple #10
0
def run_observer():
    with Observer(get_provider().get_adapter(), lambda advertisement_report: print(advertisement_report)):
        sleep(5)
Exemple #11
0
        org=_influx_config["org"],
        enable_gzip=True,
        verify_ssl=True,
    )
    _write_client = _influx_client.write_api(write_options=WriteOptions(
        flush_interval=15_000, max_retries=1, max_retry_delay=10_000))

    _mac_list = [bytes.fromhex(x.replace(":", "")) for x in _config["macs"]]

    _measurements = Subject()
    thread_pool_scheduler = ThreadPoolScheduler(2)
    _measurements_subj = _measurements.pipe(
        ops.observe_on(thread_pool_scheduler))
    # _measurements_subj.subscribe(on_next=lambda x: print(x, flush=True))
    _write_client.write(
        bucket="sensors",
        record=_measurements_subj.pipe(ops.map(_ruuvi_data_to_influx)),
    )

    def on_advertisement(advertisement):
        msg = RuuviTagData.from_mfg_data(advertisement.mfg_data, _mac_list)
        if msg is not None:
            _measurements.on_next(msg)

    observer = Observer(get_provider().get_adapter())
    observer.on_advertising_data = on_advertisement
    observer.start()

    while True:
        sleep(10)