-
Notifications
You must be signed in to change notification settings - Fork 20
APIs
Change language: EN
nächste Seite: Pinouts NodeMCU v2, v3
Die API nimmt die Sensordaten entgegen und dient als Basis für die grafische Darstellung auf http://maps.luftdaten.info/ . Zudem werden die Daten der "öffentlichen" Sensoren einmal täglich (gegen 8:00 Uhr) als CSV exportiert und unter http://archive.luftdaten.info/ zur Verfügung gestellt.
Die API nimmt ebenfalls die Sensordaten entgegen und speichert diese in ein CSV-Dateien (jeweils eine Datei pro Sensor und Tag). Desweiteren werden die Daten in einer RoundRobin-Datenbank abgelegt und via RRDTools grafisch aufbereitet. Das Dateiarchiv kann unter https://www.madavi.de/sensor/csvfiles.php abgerufen werden, die grafische Darstellung unter https://www.madavi.de/sensor/graph.php .
Opensensemap ist eine freie Plattform für offene Sensordaten. Webseite sowie API sind quelloffen. Neben zahlreichen Projekten, welche Daten an diese Plattform liefern, kann auch der Feinstaubsensor seine Daten dorthin übertragen. Nutzer können dort ihre Werte anzeigen und als Graph aufbereiten lassen. Eine dort erzeugte "Box" hat eine eigene ID, diese ist auf der Konfigurationsseite des Feinstaubsensors einzutragen. Danach ist der API-Punkt in der Konfiguration zu aktivieren.
Die Daten können mit dieser Funktion auf einem Webserver gespeichert werden. Der Menüpunkt "An eigene API senden" auf der Konfigurationsseite des Feinstaubsensors muss entsprechend aktiviert und die Zieladresse mit Server, Pfad, Port sowie optional Benutzer und Passwort eingetragen werden. Zum Speichern und späteren Auswerten der Daten steht ein einfaches PHP-Script bereit:
https://github.com/opendata-stuttgart/madavi-api/blob/master/data_simple.php
Das speichert die gelieferten Daten in einer täglichen .csv-Datei ab. Die Daten werden im .json-Format und nicht im $_post-Format geliefert! Dieses Script kann auch Grundlage zur Speicherung in einer eigenen Datenbank verwendet werden (selbst programmieren).
Issue #69 gibt weitere Hinweise und Codebeispiele für PHP:
https://github.com/opendata-stuttgart/meta/issues/69#issuecomment-314222830
Noch ein Beispiel: ein Python Script als Systemd Service empfängt die Daten und sendet sie an Domoticz:
https://github.com/joba-1/airrohr2domoticz
Hinweis: Wenn eine HTTPS-Verschlüsselung genutzt werden soll, muss dies über Port 443 geschehen. Das auf dem Server verwendete SSL-Zertifikat darf max. 2048 Bit groß sein, da der Speicher der NodeMCU nicht mehr verkraftet. Dabei werden (u.a. aus Performancegründen) nur folgende SSL/TLS ciphers unterstützt:
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA\
InfluxDB ist eine spezielle Datenbank für zeitbasierte Messungen oder Events. Ist ein eigener InfluxDB-Server vorhanden, können die Daten des Sensors auch direkt an diesen geschickt werden.
Die Voreinstellungen müssen für eigene Anwendung entsprechend angepasst werden. (Server, Port, Pfad, Benutzer) Dabei muss beim Server lediglich die Adresse, ohne Zusätze wie HTTP oder HTTPS eingegeben werden, wobei letzteres eh nicht unterstützt wird.
Weitergehende Infos zu InfluxDB
https://www.influxdata.com/
(Für HTTPS gelten die gleichen Einschränkungen wie für "An eigene API senden")
Für die NodeMCU wird als ID die chipID genutzt. Für andere Systeme setzt sich X-Sensor aus einem Namen für das System (z.B. raspi für Raspberry) und einer eindeutigen ID zusammen (Raspberry: Serial in /proc/cpuinfo) zusammen.
Beispiel POST für SDS011:
Header
Content-Type: application/json
X-Pin: 1
X-Sensor: esp8266-12345678
Data
{
"software_version": "your_version",
"sensordatavalues":[
{"value_type":"P1","value":"66.04"},
{"value_type":"P2","value":"53.32"}
]
}
Beispiel POST für DHT22:
Header
Content-Type: application/json
X-Pin: 7
X-Sensor: esp8266-12345678
Data
{
"software_version": "your_version",
"sensordatavalues":[
{"value_type":"temperature","value":"22.30"},
{"value_type":"humidity","value":"34.70"}
]
}
Andere Sensoren:
BMP180: value_types: temperature, pressure; X-Pin: 3
BME280: value_types: temperature, humidity, pressure; X-Pin: 11
PMS1003 - PMS 7003: value_types: P1 (PM10), P2 (PM2.5); X-Pin: 1
Die Adresse des API-Endpunkts zum Abliefern der Daten ist https://api.sensor.community/v1/push-sensor-data/ (bzw. https://api-rrd.madavi.de/data.php fuer Madavi.de).
- Wiki home, EN
- Bezugsquellen Einzelteile, EN
- Firmware einspielen, EN
- Zusammenbau der Komponenten (Schaltung), EN
- Zusammenbau der Komponenten (Montage Einzelteile), EN
- Sensor-Konfiguration, EN
- Eintrag in der Datenbank, EN
- Links (Grafiken, Sensor-Infos), EN
- Translations
- Data format
- APIs, EN
- Anschluss weitere Sensoren und Hardware
- Senden an Sensor.Community (z.B. mit Raspberry Pi)
- NodeMCU Pinouts v2, v3
- Datenblätter, Spezifikationen
- Unterstützte Sensoren
- Studien
- ähnliche Projekte
- Korrektur Luftfeuchte, EN
- EN: How to use the SDS011 as a mobile sensor
- FR: Comment utiliser SDS011 comme capteur PM mobile
- 2020-04-0 Stadtbücherei - Weihnachtsferien
- 2020-04-0 Shackspace
- 2020-03-24 Stadtbücherei - Weihnachtsferien
- 2020-03-10 Shackspace
- 2020-02-23 Stadtbücherei
- 2020-02-09 Shackspace
- 2020-01-0 Stadtbücherei
- 2020-01-0 Shackspace
- 2019-12-24 Stadtbücherei - Weihnachtsferien
- 2019-12-10 Shackspace
- 2019-11-26 Stadtbücherei
- 2019-11-12 Shackspace
- 2019-10-22 Stadtbücherei
- 2019-10-08 Shackspace
- 2019-09-24 Stadtbücherei
- 2019-09-10 Shackspace
- 2019-09-24 Stadtbücherei
- 2019-09-10 Shackspace
- 2019-08-27 Stadtbücherei
- 2019-08-13 Shackspace - Sommerferien
- 2019-07-23 Stadtbücherei
- 2019-07-09 Shackspace
- 2019-06-25 Stadtbücherei
- 2019-06-11 Shackspace - Pfingstferien
- 2019-05-28 Stadtbücherei
- 2019-05-14 Shackspace
- 2019-04-23 Stadtbücherei - Osterferien
- 2019-04-09 Shackspace
- 2019-03-26 Stadtbücherei
- 2019-03-12 Shackspace
- 2019-02-26 Stadtbücherei
- 2019-02-12 Shackspace
- 2019-01-22 Stadtbücherei
- 2019-01-08 Shackspace
- 2018-12-18 Stadtbücherei - Weihnachtsferien
- 2018-12-11 Shackspace
- 2018-11-27 Stadtbücherei
- 2018-11-13 Shackspace
- 2018-10-23 Stadtbücherei
- 2018-10-09 Shackspace
- 2018-09-25 Stadtbücherei
- 2018-09-11 Shackspace
- 2018-08-28 Stadtbücherei
- 2018-08-14 Shackspace - Sommerpause
- 2018-07-24 Stadtbücherei
- 2018-07-10 Shackspace
- 2018-06-26 Stadtbücherei
- 2018-06-12 Shackspace
- 2018-05-22 Stadtbücherei
- 2018-05-08 Shackspace
- 2018-04-24 Stadtbücherei
- 2018-04-10 Shackspace
- 2018-03-27 Stadtbücherei
- 2018-03-13 Shackspace
- 2018-03-03 Open Data Day 2018
- 2018-02-27 Stadtbücherei
- 2018-02-13 Shackspace
- 2018-01-23 Stadtbücherei
- 2018-01-09 Shackspace
- 2017-12-26 Stadtbücherei
- 2017-12-12 Shackspace
- 2017-11-28 Stadtbücherei
- 2017-11-14 Shackspace
- 2017-10-24 Stadtbücherei
- 2017-10-10 Shackspace
- 2017-09-26 Stadtbücherei
- 2017-09-12 Shackspace
- 2017-08-22 Stadtbücherei
- 2017-08-08 Shackspace
- 2017-07-25 Stadtbücherei
- 2017-07-11 Shackspace
- 2017-06-27 Stadtbücherei
- 2017-06-13 Shackspace
- 2017-05-23 Stadtbücherei
- 2017-05-09 Shackspace
- 2017-04-25 Stadtbücherei
- 2017-04-11 Shackspace
- 2017-03-28 Stadtbücherei
- 2017-03-14 Shackspace
- 2017-03-04 Open Data Day 2017
- 2017-02-28 Stadtbücherei
- 2017-02-14 Shackspace
- 2017-01-24 Stadtbücherei
- 2017-01-10 Shackspace
- 2016-12-20 Stadtbücherei
- 2016-12-13 Shackspace
- 2016-11-22 Stadtbücherei
- 2016-11-08 Shackspace
- 2016-10-25 Stadtbücherei
- 2016-10-11 Shackspace
- 2016-09-27 Stadtbücherei
- 2016-09-13 Shackspace
- 2016-08-23 Stadtbücherei
- 2016-08-09 Shackspace
- 2016-07-26 Stadtbücherei
- 2016-07-12 Shackspace
for more, see Protokolle