fhnw-ds-hs2019-weatherstation-api

Provides access to the Wasserschutzpolizei Zurich live and historic weather data.


License
MIT
Install
pip install fhnw-ds-hs2019-weatherstation-api==0.17

Documentation

Weather Station

Prerequisites

Make sure your Raspberry Pi can connect to the internet (e.g. open a Web-Browser and enter your credentials).

Make sure the time is correct (at FHNW your Pi is not abble to connect to the internet at startup to sync the time).

(e.g. using Ubuntu from Microsoft Store - https://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/)

# using a terminal on your Raspberry Pi
sudo date -s "13 AUG 2019 15:43:00" 

Alternatively, you might also want to send the current date from a computer (e.g. your Laptop) to your Raspberry Pi. In case you are using Windows you might want to use Ubuntu from Microsoft Store (please follow this procedure on how to install it).

# send the date of your computer to the Raspberry Pi - replace "host" with your Raspberry Pi's hostname or IP-address
ssh pi@host "date --set \"$(date)\""

Make sure you use newest software

sudo apt-get update
sudo apt-get upgrade 

TICK Stack Installation

Please follow this procedure to install the TICK stack on your Raspberry Pi.

Store Weather Data

This challenge uses the weather data provided by the Wasserschutzpolizei Zurich. The weatherstation-api package provides the means to read historic and live data.

Store Historc Weather Data

The script provided at the weatherstation-api page indicates how to load historic data (stored in csv files) into InfluxDB.

Store Live Weather Data

The Wasserschutzpolizei Zurich updates the weather data every 10 minutes. Accordingly, you should fetch the data from their API every 10 minutes (please make sure you do not fetch the data in a shorter period because otherwise your queries can result in a denial of service attack (and the Wasserschutzpolizei will catch and arrest you!!!)).

There are several options on how to periodically fetch the weather data. One option is to setup a systemd timer unit.

Query Weather Data

Use InfluxQL (InfluxDB's query language) to explore InfluxDB's schema and data. There are also Jupyter Notebooks available on our Jupyter Hub which show how to connect and query data from InfluxDB.

Visualize Data

Chronograf

The TICK Stack comes with Chronograf. It runs on http://localhost:8888 and provides the possibility to visualize data.

alt text

In order to get started you can import this simple Dashboard

Otherwise use following procedure:

  • Dashboards -> Create Dashbord
  • Add Data
  • Select "meteorology.autogen" -> mythenquai -> air_temperature
  • Make sure you select a large enough duration (e.g. "Past 30d")
  • You might want to add a second query (e.g. for "tiefenbrunnen")

Reinstall Raspbian

You should do this if you really need to!

  1. Format your SD Card by following this (alternatively you might want to use this for windows or this for linux) procedure.
  2. Install the operating system by following this procedure.

System Tuning

Raspberry Pi 3

Enable ZRAM and disable Swap

sudo wget -O /usr/bin/zram.sh https://raw.githubusercontent.com/novaspirit/rpi_zram/master/zram.sh
sudo chmod +x /usr/bin/zram.sh
# add as second last line (before exit 0)
sudo sed -i "`wc -l < /etc/rc.local`i\\/usr/bin/zram.sh &\\" /etc/rc.local
sudo shutdown -r now

Alternatively, increase Swap and set swappiness as low as possible

sudo dphys-swapfile swapoff
echo "CONF_SWAPSIZE=1024" | sudo tee -a /etc/dphys-swapfile
echo "vm.swappiness = 1" | sudo tee -a /etc/sysctl.conf
sudo dphys-swapfile swapon
sudo shutdown -r now