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.