All Projects → earthobservations → luftdatenpumpe

earthobservations / luftdatenpumpe

Licence: AGPL-3.0 License
Process live and historical data from luftdaten.info, IRCELINE and OpenAQ. Filter by station-id, sensor-id and sensor-type, apply reverse geocoding, store into timeseries and RDBMS databases, publish to MQTT, output as JSON or visualize in Grafana.

Programming Languages

python
139335 projects - #7 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to luftdatenpumpe

kotori
A flexible data historian based on InfluxDB, Grafana, MQTT and more. Free, open, simple.
Stars: ✭ 73 (+231.82%)
Mutual labels:  mqtt, influxdb, time-series, grafana, open-data, daq, sensor-network
Questdb
An open source SQL database designed to process time series data, faster
Stars: ✭ 7,544 (+34190.91%)
Mutual labels:  influxdb, time-series, grafana
Docker Flask Mongodb Example
Uses docker compose with a python flask microservice and MongoDB instance to make a sample application
Stars: ✭ 49 (+122.73%)
Mutual labels:  mqtt, influxdb, grafana
Netdata
Real-time performance monitoring, done right! https://www.netdata.cloud
Stars: ✭ 57,056 (+259245.45%)
Mutual labels:  influxdb, time-series, grafana
Iotstack
docker stack for getting started on IOT on the Raspberry PI
Stars: ✭ 1,383 (+6186.36%)
Mutual labels:  mqtt, influxdb, grafana
Airrohr-kit
A complete kit for building a Air Quality meter for the Luftdaten.info project
Stars: ✭ 26 (+18.18%)
Mutual labels:  air-quality, luftdaten, luftdaten-sensor
ruuvitag-demo
Demo of reading Bluetooth Low Energy sensor measurements of RuuviTag environmental sensors and feeding them to MQTT, a database and dashboards
Stars: ✭ 14 (-36.36%)
Mutual labels:  mqtt, influxdb, grafana
coronavirus-dresden
Collects official SARS-CoV-2 infection statistics published by the city of Dresden.
Stars: ✭ 19 (-13.64%)
Mutual labels:  influxdb, grafana, opendata
air-quality
Live dashboard for air quality in my home.
Stars: ✭ 70 (+218.18%)
Mutual labels:  influxdb, grafana, air-quality
rpi-enviro-mqtt
Send air quality data from a Pimoroni RPi Enviro+ over MQTT
Stars: ✭ 30 (+36.36%)
Mutual labels:  mqtt, air-quality
tilt-pitch
Simple replacement for the Tilt Hydrometer mobile apps and TiltPi with lots of features
Stars: ✭ 32 (+45.45%)
Mutual labels:  influxdb, grafana
microservices-observability
🎉 Microservices Observability - Log Aggregation, Distributed Tracking, Metrics
Stars: ✭ 40 (+81.82%)
Mutual labels:  influxdb, grafana
cv4pve-metrics
Metrics for Proxmox VE, Grafana with dasboard, InfluxDb
Stars: ✭ 38 (+72.73%)
Mutual labels:  influxdb, grafana
ha-config-ataraxis
My Home Assistant Configs. If you like what you see, please ⭐️my repo. It would encourage me a lot 🤘
Stars: ✭ 146 (+563.64%)
Mutual labels:  influxdb, grafana
darksky2influxdb
Stores wheather forcecast data from darkskyapi into a influxdb database
Stars: ✭ 21 (-4.55%)
Mutual labels:  influxdb, grafana
nfCollector
Collects Netflow version 1, 5, 6, 7, 9 & IPFIX & stores them on InfluxData time-series DB (InfluxDB)
Stars: ✭ 30 (+36.36%)
Mutual labels:  influxdb, grafana
webperf-dashboard
Web Performance Dashboard forked from https://github.com/boyney123/garie
Stars: ✭ 51 (+131.82%)
Mutual labels:  influxdb, grafana
M5Stack-Air-Quality-ESPHome
ESPHome configuration for M5Stack's PM2.5 Air Quality Kit with the PMSA003 particulate matter sensor and the SHT20 temperature and humidity sensor
Stars: ✭ 19 (-13.64%)
Mutual labels:  mqtt, air-quality
mongofluxd
Real time sync from MongoDB into InfluxDB
Stars: ✭ 33 (+50%)
Mutual labels:  influxdb, time-series
histou
Adds templates to Grafana in combination with nagflux
Stars: ✭ 33 (+50%)
Mutual labels:  influxdb, grafana
https://assets.okfn.org/images/ok_buttons/od_80x15_red_green.png https://assets.okfn.org/images/ok_buttons/oc_80x15_blue.png https://assets.okfn.org/images/ok_buttons/os_80x15_orange_grey.png

Luftdatenpumpe

About

Process live and historical data from luftdaten.info, irceline and OpenAQ. Filter by station-id, sensor-id and sensor-type, apply reverse geocoding, store into TSDB and RDBMS databases (InfluxDB and PostGIS), publish to MQTT or just output as JSON.

Features

  1. Luftdatenpumpe acquires the measurement readings either from the livedata API of luftdaten.info or from its archived CSV files published to archive.luftdaten.info. To minimize impact on the upstream servers, all data gets reasonably cached.
  2. While iterating the readings, it optionally filters on station-id, sensor-id or sensor-type and restrains information processing to the corresponding stations and sensors.
  3. Then, each station's location information gets enhanced by
    • attaching its geospatial position as a Geohash.
    • attaching a synthetic real-world address resolved using the reverse geocoding service Nominatim by OpenStreetMap.
  4. Information about stations can be
    • displayed on STDOUT or STDERR in JSON format.
    • filtered and transformed interactively through jq, the swiss army knife of JSON manipulation.
    • stored into RDBMS databases like PostgreSQL using the fine dataset package. Being built on top of SQLAlchemy, this supports all major databases.
    • queried using advanced geospatial features when running PostGIS, please follow up reading the Luftdatenpumpe PostGIS tutorial.
  5. Measurement readings can be
    • displayed on STDOUT or STDERR in JSON format, which allows for piping into jq again.
    • forwarded to MQTT.
    • stored to InfluxDB and then
    • displayed in Grafana.

Synopsis

# List networks
luftdatenpumpe networks

# List LDI stations
luftdatenpumpe stations --network=ldi --station=28,297 --reverse-geocode

# Store list of LDI stations and metadata into RDBMS database (PostgreSQL), also display on STDERR
luftdatenpumpe stations --network=ldi --station=28,1071 --reverse-geocode --target=postgresql://luftdatenpumpe@localhost/weatherbase

# Store LDI readings into InfluxDB
luftdatenpumpe readings --network=ldi --station=28,1071 --target=influxdb://luftdatenpumpe@localhost/luftdaten_info

# Forward LDI readings to MQTT
luftdatenpumpe readings --network=ldi --station=28,1071 --target=mqtt://mqtt.example.org/luftdaten.info

For a full overview about all program options including meaningful examples, you might just want to run luftdatenpumpe --help on your command line or visit luftdatenpumpe --help.

Screenshots

Luftdaten-Viewer displays stations and measurements from luftdaten.info (LDI) in Grafana.

Map display and filtering

  • Filter by different synthesized address components and sensor type.
  • Display measurements from filtered stations on Grafana Worldmap Panel.
  • Display filtered list of stations with corresponding information in tabular form.
  • Measurement values are held against configured thresholds so points are colored appropriately.
https://community.hiveeyes.org/uploads/default/original/2X/f/f455d3afcd20bfa316fefbe69e43ca2fe159e62d.png

Map popup labels

  • Humanized label computed from synthesized OpenStreetMap address.
  • Numeric station identifier.
  • Measurement value, unit and field name.
https://community.hiveeyes.org/uploads/default/original/2X/4/48eeda1a1d418eaf698b241a65080666abcf2497.png

Installation

If you are running Python 3 already, installing the program should be as easy as:

pip install luftdatenpumpe

At this point, you should be able to conduct simple tests like luftdatenpumpe stations as seen in the synopsis section above. At least, you should verify the installation succeeded by running:

luftdatenpumpe --version

However, you might have to resolve some prerequisites so you want to follow the detailed installation instructions at install Luftdatenpumpe.

Luftdaten-Viewer

About

Using Luftdatenpumpe, you can build user-friendly interactive GIS systems on top of PostGIS, InfluxDB and Grafana. We are calling this "Luftdaten-Viewer".

Without further ado, you might enjoy reading about existing "Luftdaten-Viewer" installations at Testimonials for Luftdatenpumpe.

Instructions

These installation instructions outline how to setup the whole system to build similar interactive data visualization compositions of map-, graph- and other panel-widgets like outlined in the "Testimonials" section.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program; if not, see: <http://www.gnu.org/licenses/agpl-3.0.txt>, or write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Content attributions

The copyright of particular images and pictograms are held by their respective owners, unless otherwise noted.

Icons and pictograms

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].