Hi Markus!
Wir hatten dazu Mitte 2016 schon einmal etwas für @clemens vorbereitet:
Wie versprochen ist unsere HTTP API nun scharf geschaltet, man kann also ab sofort Daten auch per HTTP anliefern. Die zu verwendende Methode ist POST, akzeptiert werden die Formate application/json
sowie application/x-www-form-urlencoded
und die Basis URL lautet https://swarm.hiveeyes.org/api.
Weitere Details zur HTTP Schnittstelle finden sich in der Dokumentation unter Data acquisition via HTTP. Damit die Anbindung über PHP einfacher und weniger fehleranfällig ist, findest Du unter Data acquisition with PHP entsprechende Bibliotheken und Beispielcode. Da @clemens mir erzählt hatte, dass er leider noch auf PHP4 festgenagelt ist, findest Du dort auch entsprechende Clients zur Datenanlieferung für PHP4. Sag jederzeit Bescheid, falls dabei irgendwas klemmen sollte. Ansonsten viel Spaß beim Daten durchleiten! :-)
Informationen zur Adressierung (welche Informationen müssen in die URL?) findest Du unter Data acquisition » Addressing. Du musst Dir also frei wählbare, anonyme Identifizierer für network
, gateway
und node
ausdenken. network
sollte im UUID Format sein, über den Online UUID Generator kannst Du Dir eine entsprechende Adresse selbst generieren.
Da wir auf dieses Konzept der anonymen Datenübermittlung setzen und die Plattform derzeit von noch nicht so vielen Leuten benutzt wird, haben wir vorerst auf Authentifizierungsmechanismen weitgehend verzichtet. Sobald man Datenpakete schickt, wird automatisch ein Standard Dashboard im Grafana angelegt, das man dann nach Belieben selber interaktiv modifizieren kann. Nur um dieses Grafana Dashboard bearbeiten zu können, brauchst Du einen Login, den ich Dir gleich per PM mitteile.
Wie oben erwähnt benutzt Du am besten die bereits vorhandene PHP API und siehst Dir den PHP Beispielcode dazu an:
// Put this file into the folder of your PHP program
include("hiveeyes.php");
// Acquire API library
use Hiveeyes\HiveeyesNode;
// Create a "Node API" telemetry client object
$telemetry = new HiveeyesNode(
array(
"network" => "4be26ecf-c53e-4dea-9e1b-4f72a1c8451d",
"gateway" => "test-42",
"node" => "node-1",
)
);
// Transmit data
$data = array("temperature" => 42.84, "humidity" => 83, "weight" => 37.4);
$telemetry->transmit($data);
Melde Dich einfach, wenn Du weitere Fragen dazu hast.
Viele Grüße,
Andreas.
P.S.: Siehe auch Daten per MQTT ans Backend auf swarm.hiveeyes.org übertragen.