Meßdaten an die Hiveeyes Plattform übermitteln

Einleitung

Die Hiveeyes Plattform unterstützt die Meßdatenübermittlung per MQTT und HTTP. Beide Varianten verwenden das gleiche Adressierungsschema, das - unabhängig vom Aspekt der Authentifizierung - eine vollständig anonymisierte Datenübermittlung an das System gewährleistet.

Bei beiden Protokollen werden die Daten vorwiegend im JSON-Format übermittelt, die Plattform bietet jedoch auch auch das CSV-Format sowie das HTTP-Formular-kompatible x-www-form-urlencoded an.

Unser Datenakquise-Host heißt "swarm.hiveeyes.org".

Im folgenden werden die Schnittstellen beschrieben. Verweise auf Beispielimplementierungen helfen für einen schnelleren Einstieg.

Für Rückfragen stehen wir Euch gerne zur Verfügung.

2 Likes

Adressierung

Das Adressierungsschema ist dafür geeignet, beliebig viele Imkerkollektive (z.B. Imkereiverein, Forschungsgruppe, etc.) sowie deren Imker, Standorte und Beuten adressieren zu können. Nach der Vergabe einer Imker-ID kann jede Imkerin beliebige Identifizierer auf der Ebene von Standort / Bienenstock selbst vergeben und dadurch einfach, flexibel und autonom neue Meßknoten in Betrieb nehmen.

Der technischen Zuordnung

realm     / network / gateway  / node

entspricht in etwa die imkerliche Sicht

Kollektiv / Imker   / Standort / Bienenstock

Details

  • Der "realm" für die Übermittlung an swarm.hiveeyes.org ist immer "hiveeyes".
  • "network" ist eine individuelle anonyme Imker-ID und wird vom System vergeben.
  • "gateway" ist ein frei konfigurierbarer individueller Identifizierer und kann für die Adressierung unterschiedlicher Standorte verwendet werden.
  • Mit "node" wird der Bienenstock identifiziert, auch dieser Identifizierer kann jederzeit frei vergeben werden.

Beispiel

realm   = hiveeyes
network = ecf85b9g
gateway = wedding
node    = hive-1

Datenformat

Das Datenformat ist ein einfaches JSON-Objekt/Dictionary à la

{
  "humidity.outside": 33.46,
  "temperature.outside": 22.67,
  "temperature.inside": 23.5,
  "weight": 42.42,
  "memory.free": 2291968
}

Unter Erarbeitung eines kanonischen Datenschemas für imkerliche Meßdaten finden sich ein paar weitere Beispiele, auch für Varianten mit fortgeschrittenen Sensorausstattungen.

Ausblick

Testbetrieb

Wir haben einige Beispiele zusammengestellt, wie man ganz einfach ohne Authentifizierung auf dem "testdrive" Kanal erste Versuche zur Datenübermittlung unternehmen kann.

Wer sich auf der Kommandozeile zu Hause fühlt, kommt über die Programme mosquitto_pub (MQTT) und httpie (HTTP) schnell und komfortabel zum Ziel, entsprechende Installationsanleitungen finden sich bei Installing command line programs.

MQTT

Beispiel für MQTT
# Zieladresse festlegen
export BROKER=swarm.hiveeyes.org
export CHANNEL=hiveeyes/testdrive/area-42/node-1

# Messung übermitteln
echo '{"temperature": 42.84, "humidity": 83.83}' | mosquitto_pub -h $BROKER -t $CHANNEL/data.json -l

Doku: Telemetriedaten per MQTT an swarm.hiveeyes.org übermitteln.

HTTP

Beispiel für HTTP
# Zieladresse festlegen
export HTTPURI=https://swarm.hiveeyes.org/api
export CHANNEL=hiveeyes/testdrive/area-42/node-1

# Messung übermitteln

# Als application/json
http POST $HTTPURI/$CHANNEL/data temperature:=42.84 humidity:=83.83

# Als application/x-www-form-urlencoded
http --form POST $HTTPURI/$CHANNEL/data temperature:=42.84 humidity:=83.83

Doku: Telemetriedaten per HTTP an swarm.hiveeyes.org übermitteln.

Instant-Dashboard

Bei erfolgreicher Datenübermittlung sollte sich ein dem Kanal entsprechendes Dashboard im Grafana unter Hiveeyes Instant Dashboards finden lassen.

Echtbetrieb

Im Echtbetrieb übermittelt man die Daten mit einer individuellen Imker-ID statt "testdrive", damit erfolgt dann die Übermittlung authentifiziert.

Entsprechende Informationen senden wir Euch gerne auf Anfrage zu. Bei Zugangsdaten beantragen / Account erstellen wird beschrieben, wie das klappt.

1 Like

Infrastruktur: Übertragungsvarianten

Neben der direkten Übermittlung über TCP/IP gibt es noch weitere erschlossene Übermittlungsszenarien, beispielsweise per Funkkommunikation im ISM-Band – Wikipedia. Für die Umsetzung auf TCP/IP gibt es infrastrukturseitig entsprechende Gateway-Komponenten.

Solch fortgeschrittenen Szenarien haben wir unter … einen separaten Bereich gewidmet, im Folgenden geht es weiterhin um Setups mit TCP/IP Konnektivität bis zum Meßknoten oder über öffentliche Infrastrukturnetzwerke wie TTN.

Software: Bibliotheken und fertige Implementierungen

Ein kleiner Überblick über fertige Firmwares, die das Datenübertragungsverfahren bereits so implementieren wie hier beschrieben.

C++/Arduino

Firmwares für ESP8266 mit MQTT Telemetrie

MicroPython und Python

Firmwares und Datenlogger für ESP32 und SBCs mit MQTT Telemetrie

MicroPython

Python

Dokumentation

Software

JavaScript / TypeScript

JavaScript Bibliothek für direkte Telemetrie oder Weiterleitung per HTTP

PHP

PHP Bibliothek zur Weiterleitung per HTTP

Diese Übertragungsvariante wurde für die Open Hive Meßknoten entwickelt, die ihre Daten noch an einen Webserver mit PHP Schnittstelle senden. Die Daten werden von dort zur Hiveeyes Plattform weitergeleitet.