Datenverarbeitung Diese Seite beschreibt den Datenfluss, von den Sensoren bis zum finalen Dashboard. Übersicht Datentransfer Sensor → TTN Die Messwerte der einzelnen Counter werden über das  LoRa  Funkprotokoll an das The Things Network (TTN) übermittelt. Im Oberlab Account bei TTN ist die Applikation  oberlab-counter-sandbox  dafür eingerichtet worden. DeviceIDs für insgesamt 15 Geräte (5 jeweils für Schwaz/Geretsried/Miesbach) wurden angelegt. Die Liste ist unter /Projekte/connecting-peaks/Sensor_Code/TTN_EIDs.ods in der OberCloud abgelegt. Der Payload Formatter setzt die 10 Bytes Daten in folgende felder um: data.wifi = (input.bytes[1] << 8) + input.bytes[0]; data.ble = (input.bytes[3] << 8) + input.bytes[2]; data.battery = (input.bytes[5] << 8) + input.bytes[4]; data.wifi_new = (input.bytes[7] << 8) + input.bytes[6]; data.ble_new = (input.bytes[9] << 8) + input.bytes[8]; Die fertigen Datenpakjete stehen anschließend am  MQTT  Server von TTN zur Verfügung und können prinzipiell dort unter dem Topic  v3/oberlab-counter-sandbox@ttn/  abgegriffen werden. Ober-MQTT Server Der zentrale MQTT Server vom Oberlab spiegelt die Sensordaten jedoch nochmal in's Oberlab, wo sie unter dem Topic connecting_peaks/sandbox/  verfügbar sind. Ablage in der Datenbank Die Abfrage vom MQTT Server und die Übermittlung in die Influx Datenbank erfolgt über den Dienst  Telegraf . Folgender Teil der  telegraf.conf  ist dafür relevant ( wobei die Renames nicht vollständig sind - geht aber trotzdem… ): [[inputs.mqtt_consumer]] ## Topics that will be subscribed to. topics = [ "connecting_peaks/sandbox/#", ] data_format="json_v2" ## Enable extracting tag values from MQTT topics ## _ denotes an ignored entry in the topic path [[inputs.mqtt_consumer.topic_parsing]] topic = "connecting_peaks/sandbox/devices/+/+" measurement = "_/_/_/_/measurement" tags = "_/_/_/device/_" [[inputs.mqtt_consumer.json_v2]] [[inputs.mqtt_consumer.json_v2.object]] path = "[@this]" timestamp_key = "epoch" timestamp_format = "unix" [inputs.mqtt_consumer.json_v2.object.renames] battery = "uplink_message.decoded_payload.battery" ble = "uplink_message.decoded_payload.ble" wifi = "uplink_message.decoded_payload.wifi" Die Daten werden in die  InfluxDB  Datenbank  sandbox  abgelegt. Visualisierung in Grafana Grafana  dient der Anzeige der Daten aus der InfluxDB. Somit können nur Datensätze angezeigt werden, die die gesamte Übertragungskette LoRa→TTN→MQTT→MQTT→Telegraf→InfluxDB durchlaufen sind. Es können verschiedene Dashboards erstellt werden, um unterschiedliche Darstellungen anzubieten. Das Hauptdashboard ist unter  https://connectingpeaks.oberlab.de/d/FN8cHh8Vz/sandbox?orgId=1&refresh=1m&from=now-24h&to=now  öffentlich erreichbar. Eine Vor-Selektierung der Sensoren kann in die URL eingebunden werden, z.B. für Schwaz:  https://connectingpeaks.oberlab.de/d/FN8cHh8Vz/sandbox?orgId=1&refresh=1m&var-Sensors=schwaz-pxc-01&var-Sensors=schwaz-pxc-02&var-Sensors=schwaz-pxc-03&from=now-24h&to=now Folgende Messgrößen sind in den jeweiligen Graphen ersichtlich: WIFI: Anzahl der erfassten WiFi Geräte BLE: Anzahl der erfassten Bluetooth Geräte WIFI New: Anzahl der erfassten WiFi Geräte, die an diesem Tag noch nicht gezählt wurden BLE New: Anzahl der erfassten Bluetooth Geräte, die an diesem Tag noch nicht gezählt wurden WIFI new 24h: Gesamt Zahl der WiFi Geräte, die an dem Tag erfasst wurden BLE New 24h: Gesamt Zahl der Bluetooth Geräte, die an dem Tag erfasst wurden Voltage: Spannung der internen Batterie – Paxcounter läuft im Normalbetrieb solange die Spannung über 3.7V bleibt Ein Punkt auf dem jeweiligen Graphen entspricht einer übertragenen Messung. Die Kurven der 3 Counter sind farblich unterschiedlich dargestellt. Projektspezifische Dienste Die Dienste Telegraf, InfluxDB und Grafana laufen in einer projektspezifischen VM ( pconnectingpeaks ) auf dem Oberlab-Server. Damit ergibt sich eine logische Abgrenzung zu anderen Oberlab-Projekten.