# BlueWeather A (hopefully soon) fully featured selft-hosted web interface and server-backend to store weather data (comparable to opensensemap.org) # State of development - interface and backend planned - readonly dashboard is working # Installation 1. Install the required packages ``` sudo apt install git apache2 mysql-server mysql-client php libapache2-mod-php php-mysql php-cli php-common -y ``` 2. Prepare the working directory and download SafeMail ``` cd /var/www/html/ git clone https://git.itsblue.de/dorian/blueweather.git ``` 3. Create the database ``` sudo mysql -u root CREATE DATABASE blueweather; ``` 4. now create the database user, if you change the username, password or database name, don't forget to change that data in the config.php file! ``` GRANT ALL ON blueweather.* TO 'blueweather'@'localhost' IDENTIFIED BY 'root'; FLUSH PRIVILEGES; exit; ``` ``` 5. Prepare database for usage (create Tables and Keys) ``` cd /var/www/html/blueweather/api sudo mysql -u root blueweather < blueweather.sql ``` Your BlueWeather instance can now be reached under: /blueweather # API docs ## get locations triggered by setting no GET parameter at all ### Parameters no parameters ### Tags - id - locationname - latitude - longitude - countryname ## get location data triggered by setting GET parameter 'locId' to a vaild location id ### Parameters - locId: id of the location to display - range: range of the data to display in unix time - from - to - max vals: maximum measvals to be transmitted; if more are present in the timespan, the avarage will be calculated ### Tags - id - locationname - latitude - longitude - countryname - measvalues - measvalue - sensorid - timestamp - sensors - id - added - userid - sensorname - property ('indoor' || 'sunny' || 'shadow' ) - valuetypeid - valuetypes - id - valuetype ('temperature' || 'humidity') - valueunit (html coding) - displayproperty - widget (properties for small widget) - type ('doughnut' || 'text') - properties (chartjs dataset properties if type is a chartjs type) - chart (properties for large chart) - type ('scatter') - properties (chartjs dataset properties) - range (actual range of present measvalues) - from - to