Hi,
Ich schreibe zur Zeit an einem Projekt dass Sensordaten von Arduinos sammelt und diese via einer API zur Verfügung stellt. Die API wurde mit Flask in Python geschrieben, ist allerdings nebensächlich für das was die Frage beinhaltet.
Ich erhalte folgenden String von jedem meiner Arduinos in meinen Broker:
Value ist der gemessene Sensorwert, User der Nutzer der gerade am Sensorarray angemeldet ist, und SensorID die Kennung des Sensors. Die Idee ist dass anhand der SensorID geprüft wird ob für diesen Sensor bereits eine Tabelle existiert und wenn nicht dann wird eine angelegt und der Messwert darin abgelegt, mit Timestamp und Nutzerkennung. Der Broker hat einen Buffer der bis zu 5 Messwerte Nachrichten hält damit nicht jede Sekunde die API aufgerufen werden muss.
Hier ist auch schon das erste Problem: Nach REST Richtlininen müsste ich ja einen POST Request an den entsprenchenden Sensor z.B. "API/Sensor/Temperatur" schicken, aber ich will ja alle Werte des Buffers versenden und diese haben halt unter Umständen unterschiedliche SensorID gehören also in unterschiedliche Tabellen. Deswegen habe ich es so gelöst, das ich einen POST Request mit
an
Nächstes Problem:
Wie würde ich elegant eine Zeitraum basierte Auswertung realisieren? Daten holen geht laut REST mit GET also
Hofffe jemand kann mir hier einen Tipp geben wie sich das sauber lösen lässt.
Ich schreibe zur Zeit an einem Projekt dass Sensordaten von Arduinos sammelt und diese via einer API zur Verfügung stellt. Die API wurde mit Flask in Python geschrieben, ist allerdings nebensächlich für das was die Frage beinhaltet.
Ich erhalte folgenden String von jedem meiner Arduinos in meinen Broker:
VALUE|USER|SENSORID
Value ist der gemessene Sensorwert, User der Nutzer der gerade am Sensorarray angemeldet ist, und SensorID die Kennung des Sensors. Die Idee ist dass anhand der SensorID geprüft wird ob für diesen Sensor bereits eine Tabelle existiert und wenn nicht dann wird eine angelegt und der Messwert darin abgelegt, mit Timestamp und Nutzerkennung. Der Broker hat einen Buffer der bis zu 5 Messwerte Nachrichten hält damit nicht jede Sekunde die API aufgerufen werden muss.
Hier ist auch schon das erste Problem: Nach REST Richtlininen müsste ich ja einen POST Request an den entsprenchenden Sensor z.B. "API/Sensor/Temperatur" schicken, aber ich will ja alle Werte des Buffers versenden und diese haben halt unter Umständen unterschiedliche SensorID gehören also in unterschiedliche Tabellen. Deswegen habe ich es so gelöst, das ich einen POST Request mit
an
API/Sensor/
versende was ja nicht unbedingt REST konform ist, da man immer die Ressource ansprechen sollte die geändert werden soll.Nächstes Problem:
Wie würde ich elegant eine Zeitraum basierte Auswertung realisieren? Daten holen geht laut REST mit GET also
API/Sensor/Temperature
, heißt ich müsste hier im Body eine Timespan angeben, dass ist allerdings natürlich auch nicht wirklich sauber .Hofffe jemand kann mir hier einen Tipp geben wie sich das sauber lösen lässt.
faxe1008