Meßdaten an die Hiveeyes Plattform übermitteln

datacollection
data-acquisition
mqtt
http
#1

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
Erarbeitung eines kanonischen Datenschemas für imkerliche Meßdaten
Moin ich bin Michael aus Schleswig Holstein
#2

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

Moin ich bin Michael aus Schleswig Holstein
#3

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.

Betrieb des Backends auf eigenen Servern / Self-hosting the Hiveeyes platform
#4

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.

Anfrage nach Zugangsdaten

Vorgehensweise zur Erstellung eines Plattform-Accounts.

Da wir noch kein Login-System haben, gerne auf einem der folgenden Wege:

Antwort: Individuelle Zugangsdaten (Blaupause)

Ihr erhaltet dann Eure individuellen Zugangsdaten à la

Deine Zugangsdaten (Blaupause)

Deine Zugangsdaten

Hallo Räuber Hotzenplotz,

anbei die Zugangsdaten für die Hiveeyes Plattform.

MQTT Authentifizierung

Statt dem Kanal “testdrive” wird nun die individuelle Imker-ID “01D8SH00BFG7DQJ3F6FSHWHPW9” gewählt, hier können Meßdaten nur mit den entsprechenden Zugangsdaten übermittelt werden.

Hostname:    swarm.hiveeyes.org
MQTT Port:   1883

Imker-ID:    01D8SH00BFG7DQJ3F6FSHWHPW9
Username:    hotzenplotz@example.org
Passwort:    {redacted}

Anleitungen: https://hiveeyes.org/docs/system/acquisition/
             https://community.hiveeyes.org/t/messdaten-an-die-hiveeyes-plattform-ubermitteln/1813

Grafana

Ein Standard-Dashboard findest Du auf https://swarm.hiveeyes.org/ im Ordner “# Instant Dashboards”. Bitte kopiere es Dir per “Save As…” in ein eigenes und nimm etwaige Änderungen dann an diesem vor. Die Funktion findest Du in den Dashboard Settings links unten, Du kannst sie über den Zahnrad Button in der Titelleiste erreichen. Du kannst Dir gern bei anderen Dashboards Inspirationen holen und sie in Deinem persönlichen Dashboard verwirklichen.

Zugangsdaten

URL:      https://swarm.hiveeyes.org/grafana/
Username: {redacted}
Passwort: {redacted}

Have fun!

Im Namen von Hiveeyes wünschen wir Dir viel Freude bei der Benutzung des Systems. Komme bei Rückfragen jederzeit gerne auf uns zu.

1 Like
#5

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.

#6

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

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.