Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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