diff --git a/miflora-client/main.py b/miflora-client/main.py index e205e64..689751b 100644 --- a/miflora-client/main.py +++ b/miflora-client/main.py @@ -3,6 +3,11 @@ from btlewrap.bluepy import BluepyBackend from miflora import miflora_scanner from miflora.miflora_poller import (MI_BATTERY, MI_CONDUCTIVITY, MI_LIGHT, MI_MOISTURE, MI_TEMPERATURE) import time +import paho.mqtt.client as mqtt +import json + +devices = [] +this_client = "test_client" def poll_miflora(address): poller = MiFloraPoller(address, BluepyBackend) @@ -17,16 +22,45 @@ def poll_miflora(address): return miflora_device +def on_connect(client, userdata, flags, rc): + print("Connected with result code "+str(rc)) + + client.subscribe("dev/mqtt-miflora/device-configuration") + +def on_message(client, userdata, msg): + devices_all = json.loads(msg.payload.decode("utf-8")) + try: + for device in devices_all["devices"]: + try: + if device["client"] == this_client: + devices.append(device) + except KeyError as err: + print("Skipping device. Key not found: '{0}'".format(err)) + except Exception as err: + print("Error decoding json configuration: {0}".format(err)) + if __name__ == "__main__": sleep_minutes = 1 backend = BluepyBackend #devices = miflora_scanner.scan(BluepyBackend, 10) + + client = mqtt.Client() + client.on_connect = on_connect + client.on_message = on_message + client.connect("chimaera", 1883, 60) + + client.loop_start() + while True: - device_1 = poll_miflora("C4:7C:8D:67:2E:1C") - device_2 = poll_miflora("C4:7C:8D:67:2E:4A") - print(device_1) - print(device_2) - time.sleep(sleep_minutes * 60) + if len(devices) == 0: + time.sleep(1) + else: + for device in devices: + polled_dev = poll_miflora(device["mac"]) + print("MIFlora {0}, -- {1}".format(device["name"], polled_dev)) + time.sleep(sleep_minutes * 60) + + client.loop_stop() diff --git a/miflora-client/requirements.txt b/miflora-client/requirements.txt index e2c8fe6..856d0f3 100644 --- a/miflora-client/requirements.txt +++ b/miflora-client/requirements.txt @@ -1,2 +1,3 @@ bluepy miflora +paho-mqtt diff --git a/miflora-master/main.py b/miflora-master/main.py index 3424bbb..31a40df 100644 --- a/miflora-master/main.py +++ b/miflora-master/main.py @@ -4,12 +4,12 @@ import json device_1 = {} device_1["mac"] = "C4:7C:8D:67:2E:1C" device_1["name"] = "Pflanze 1" -device_1["client"] = "Controller_id_1" +device_1["client"] = "test_client" device_2 = {} -device_2["max"] = "C4:7C:8D:67:2E:4A" +device_2["mac"] = "C4:7C:8D:67:2E:4A" device_2["name"] = "Pflanze 2" -device_2["client"] = "Controller_id_1" +device_2["client"] = "test_client" devices = {} devices["devices"] = [device_1, device_2]