Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lukaspustina/luftpost
Watches luftdaten.info particulates sensors and sends E-Mails if measurements exceed thresholds
https://github.com/lukaspustina/luftpost
air-quality luftdaten particulates-sensors pollution rust
Last synced: 27 days ago
JSON representation
Watches luftdaten.info particulates sensors and sends E-Mails if measurements exceed thresholds
- Host: GitHub
- URL: https://github.com/lukaspustina/luftpost
- Owner: lukaspustina
- License: mit
- Created: 2017-06-16T13:01:57.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-01-19T07:14:43.000Z (almost 4 years ago)
- Last Synced: 2024-04-24T13:16:19.491Z (8 months ago)
- Topics: air-quality, luftdaten, particulates-sensors, pollution, rust
- Language: Rust
- Size: 449 KB
- Stars: 8
- Watchers: 2
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# luftpost
Watches [luftdaten.info](http://luftdaten.info) particulates sensors and sends E-Mails if measurements exceed thresholds.
[![Linux & OS X Build Status](https://img.shields.io/travis/lukaspustina/luftpost.svg?label=Linux%20%26%20OS%20X%20Build%20Status)](https://travis-ci.org/lukaspustina/luftpost) [![Windows Build status](https://img.shields.io/appveyor/ci/lukaspustina/luftpost.svg?label=Windows%20Build%20Status)](https://ci.appveyor.com/project/lukaspustina/luftpost/branch/master) [![GitHub release](https://img.shields.io/github/release/lukaspustina/luftpost.svg)](https://github.com/lukaspustina/luftpost/releases) [![](https://img.shields.io/crates/v/luftpost.svg)](https://crates.io/crates/luftpost) [![Ansible Role](https://img.shields.io/badge/ansible--galaxy-luftpost-blue.svg)](https://galaxy.ansible.com/lukaspustina/luftpost/) [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg?label=License)](./LICENSE)
[luftdaten.info](http://luftdaten.info) offers a very easy do-it-yourself instruction on how to build an inexpensive yet powerful particulates sensor together with a fully functional firmware. This firmware regularly measures the particulates concentration and transmits the resulting data to luftdaten.info where it is processed and displayed on a world map. Even though most sensors are deployed in [Germany](http://deutschland.maps.luftdaten.info/#6/51.165/10.455) you can find sensors [all over the world](http://deutschland.maps.luftdaten.info/#8/-0.811/36.781).
_luftpost_ is a simple program that monitors luftdaten.info sensors and notifies you via E-Mail in case a particulates concentration measurement exceeds a thresholds. The E-Mail is nicely formatted and may contain the very same graphs that luftdaten.info offers -- see below for an example. The notification can be triggered to be send on every measurement, only when a measurement exceeds a threshold, or on changes only, i.e., once after exceeding a threshold and then after returning back below a threshold -- see the [Configuration](#configuration) section for details.
There are binaries for Linux, Raspberry Pi, and Windows as well as Debian packages for and a Homebrew recipe. Furthermore, there is an Ansible role for easy installation on Linux and Raspberry Pi -- see the [Installation](#Installation) section for details.
**Table of Contents**
- [Configuration](#configuration)
- [Installation](#installation)
- [Ubuntu [x86_64 and Raspberry Pi]](#ubuntu-x86_64-and-raspberry-pi)
- [Linux Binaries [x86_64 and Raspberry Pi]](#linux-binaries-x86_64-and-raspberry-pi)
- [Windows Binaries [x86_64 and i686]](#windows-binaries-x86_64-and-i686)
- [macOS](#macos)
- [Sources](#sources)
- [Ansible](#ansible)
- [Postcardware](#postcardware)
- [Future Work](#future-work)## Configuration
Please see this [example](tests/luftpost.example.conf) for a full description of all available configuration parameters. This [example](tests/luftpost-minimal.example.conf) shows the minimal configuration required to run _luftpost_.
_luftpost_ uses the [Handlebars](https://handlebarsjs.com) templating language provided through [handlebars-rust](https://github.com/sunng87/handlebars-rust). Please mind that handlebars-rust has a few [limitations](https://github.com/sunng87/handlebars-rust#limitations) compared to the original JavaScript Handlebars implementation. Please check the respective documentation if you want to develop your own templates.
## Installation
### Ubuntu [x86_64 and Raspberry Pi]
Please add my [PackageCloud](https://packagecloud.io/lukaspustina/opensource) open source repository and install _luftpost_ via apt.
```bash
curl -s https://packagecloud.io/install/repositories/lukaspustina/opensource/script.deb.sh | sudo bash
sudo apt-get install luftpost
```### Linux Binaries [x86_64 and Raspberry Pi]
There are binaries available at the GitHub [release page](https://github.com/lukaspustina/luftpost/releases). The binaries get compiled on Ubuntu.
### Windows Binaries [x86_64 and i686]
There are binaries available at the GitHub [release page](https://github.com/lukaspustina/luftpost/releases).
### macOS
Please use [Homebrew](https://brew.sh) to install _luftpost_ on your system.
```bash
brew install lukaspustina/os/luftpost
```### Sources
Please install Rust via [rustup](https://www.rustup.rs) and then run
```bash
cargo install luftpost
```### Ansible
There is also an Ansible role available at [Ansible Galaxy](https://galaxy.ansible.com/lukaspustina/luftpost/) that automates the installation of _luftpost_.
## Postcardware
You're free to use _luftpost_. If you find it useful, I would highly appreciate you sending me a postcard from your hometown mentioning how you use _luftpost_. My work address is
```
Lukas Pustina
CenterDevice GmbH
Rheinwerkallee 3
53227 Bonn
Germany
```## Future Work
* Move sending E-Mails to futures once lettre 0.7 is released
* Maybe support for directly queuering a sensor