HINT: First of all, install apache web server, followin attached "Apacheweb Server.txt" file Once apache web server its runing, follow these steps 1 - Download "weatherradio.zip" attached file: Download file and unzip in home path folder, where its indi isntalled with weatherradio driver. 2 - Install dependencies: sudo apt-get install python3 python3-rrdtool sudo pip install simplejson utidylib pathlib ffmpeg-python sudo pip install pid sudo apt install rrdtool 3 - Configure Apache sudo mkdir /usr/share/weatherradio sudo cp -a ~/add-on/weatherradio/html ~/add-on/weatherradio/bin /usr/share/weatherradio sudo cp ~/add-on/weatherradio/weatherradio.ini /usr/share/weatherradio sudo chown -R $USER:$USER /usr/share/weatherradio sudo chmod -R 755 /usr/share/weatherradio 4 - Install and activate the Apache configuration sudo cp ~/add-on/weatherradio/weatherradio.conf /etc/apache2/conf-available sudo a2enconf weatherradio sudo systemctl reload apache2 5 - Update "wr_config.py" file mkdir /usr/share/weatherradio/html/data cd /usr/share/weatherradio sudo nano /usr/share/weatherradio/bin/wr_config.py In most cases, you need to change only these two values: INDISERVER is the address of the INDI server where your weather station is connected to. INDIDEVICEPORT is the connection port of your weather station (e.g. "/dev/ttyUSB0") And modify path /usr/local/share/weatherradio/ ... to: /usr/share/weatherradio/ Example "wr_config.py" file modified: #!/usr/bin/python3 # -*- coding: latin-1 -*- #----------------------------------------------------------------------- # Configuration of Weather Radio. # # Copyright (C) 2021 Wolfgang Reissenberger # # This application is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # #----------------------------------------------------------------------- from configparser import ConfigParser from os import path class WeatherRadioConfig: config = None def __init__(self): # setup configuration self.config = ConfigParser(interpolation=None) self.config.optionxform = str # default values self.config.add_section('WeatherRadio') # web server configuration self.config.set('WeatherRadio', 'INDISERVER', 'localhost') self.config.set('WeatherRadio', 'INDIPORT', '7624') # RRD storage holding time series data self.config.set('WeatherRadio', 'RRDFILE', '/usr/share/weatherradio/weather.rrd') # RRD storage holding time series for raw sensor data self.config.set('WeatherRadio', 'RRDSENSORSFILE', '/usr/share/weatherradio/sensors.rrd') # path to the JSON files holding the data self.config.set('WeatherRadio', 'DATAPATH', '/usr/share/weatherradio/html/data') # path to the directory holding web cam images and videos self.config.set('WeatherRadio', 'MEDIADIR', '/usr/share/weatherradio/html/media') ######### INDI Weather vector and element names self.config.set('WeatherRadio', 'WEATHER', 'WEATHER_PARAMETERS') self.config.set('WeatherRadio', 'WEATHER_TEMPERATURE', 'WEATHER_TEMPERATURE') self.config.set('WeatherRadio', 'WEATHER_PRESSURE', 'WEATHER_PRESSURE') self.config.set('WeatherRadio', 'WEATHER_HUMIDITY', 'WEATHER_HUMIDITY') self.config.set('WeatherRadio', 'WEATHER_CLOUD_COVER', 'WEATHER_CLOUD_COVER') self.config.set('WeatherRadio', 'WEATHER_SQM', 'WEATHER_SQM') self.config.set('WeatherRadio', 'WEATHER_DEWPOINT', 'WEATHER_DEWPOINT') self.config.set('WeatherRadio', 'WEATHER_SKY_TEMPERATURE', 'WEATHER_SKY_TEMPERATURE') self.config.set('WeatherRadio', 'WEATHER_WIND_GUST', 'WEATHER_WIND_GUST') self.config.set('WeatherRadio', 'WEATHER_WIND_SPEED', 'WEATHER_WIND_SPEED') self.config.set('WeatherRadio', 'WEATHER_WIND_DIRECTION', 'WEATHER_WIND_DIRECTION') self.config.set('WeatherRadio', 'WEATHER_RAIN_DROPS', 'WEATHER_RAIN_DROPS') self.config.set('WeatherRadio', 'WEATHER_RAIN_VOLUME', 'WEATHER_RAIN_VOLUME') self.config.set('WeatherRadio', 'WEATHER_WETNESS', 'WEATHER_WETNESS') # read config files for file in ['/etc/weatherradio.ini', '/usr/share/weatherradio/weatherradio.ini']: self.config.read(file) def getDevices(self): """Delivers the section names of devices""" return [x for x in self.config.sections() if x.startswith('Device')] 6 - Edit wetherradio.ini file: sudo nano /usr/share/weatherradio/weatherradio.ini In most cases, you need to change only these two values: INDISERVER (same as before wr_config.py file) INDIPORT (same as before wr_config.py file) And edit your device configuration too Example my weatherradio.ini file: #----------------------------------------------------------------------- # Configuration file for weather radio. #----------------------------------------------------------------------- [WeatherRadio] # INDI server delivering weather data INDISERVER = localhost INDIPORT = 7624 # RRD storage holding time series data RRDFILE = /usr/share/weatherradio/weather.rrd # RRD storage holding time series for raw sensor data RRDSENSORSFILE = /usr/share/weatherradio/sensors.rrd # path to the JSON files holding the data DATAPATH = /usr/share/weatherradio/html/data # path to the directory holding web cam images and videos MEDIADIR = /usr/share/weatherradio/html/media #----------------------------------------------------------------------- # configure INDI devices - create for each a separate section and # let its name start with Device #----------------------------------------------------------------------- [Device:1] # INDI device name INDIDEVICE = Weather Radio # INDI device connection mode: Ethernet or Serial INDIDEVICEMODE = Ethernet # INDI serial device port (only necessary for Serial mode) INDIDEVICEPORT = /dev/ttyUSB0 # INDI IP address (only necessary for Ethernet mode) INDI_IP_ADDRESS = 192.168.1.102 # INDI IP port (only necessary for Ethernet mode) INDI_IP_PORT = 80 # Geo Coordinates - Latitude (as decimal) GEO_COORD_LAT = 27.756778 # Geo Coordinates - Longitude (as decimal) GEO_COORD_LONG = -15.594444 # Geo Coordinates - Elevation (as decimal) GEO_COORD_ELEV = 20.56 # [Device:2] # INDIDEVICE = Rain Radio # INDIDEVICEMODE = Serial # INDIDEVICEPORT = /dev/ttyUSB0 # INDI_IP_ADDRESS = 172.28.4.42 # INDI_IP_PORT = 80 # GEO_COORD_LAT = 43.916876 # GEO_COORD_LONG = 5.716624 # GEO_COORD_ELEV = 650.0 7 - Copy weatherradio.ini to etc path: sudo cp /usr/share/weatherradio/weatherradio.ini /etc 8 - creating RRD files cd /usr/share/weatherradio ./bin/wr_rrd_create.py ./bin/wr_rrd_create_sensorfile.py 9 - First Test: try to update the weather data manually cd /usr/share/weatherradio ./bin/wr_rrd_update.py --verbose ./bin/wr_rrd_fetch.py -s 6h ./bin/wr_rrd_fetch.py -s 1d ./bin/wr_rrd_fetch.py -s 7d ./bin/wr_rrd_fetch.py -s 30d 10 - check console results: cd /usr/share/weatherradio rrdtool fetch weather.rrd AVERAGE -s -6h IMPORTANT NOTE: you can see the "RTdata_6h.json" files in /usr/share/weatherradio/html/data and if the values from sensors its not updated, please purge the weatherradio in INDI PANEL -> weatherradio -> options -> purge and disconnect and connect again. finally repeat step 7 and 8 from this manual. 11 - Finally, it's time to automate by creating crontab entries: crontab -e Add this to the file # # cron jobs for arduino weather radio # # 4,9,14,19,24,29,34,39,44,49,54,59 * * * * /usr/share/weatherradio/bin/wr_rrd_update.py #--------------------------------------------------- # Update JSON export files #--------------------------------------------------- */5 * * * * /usr/share/weatherradio/bin/wr_rrd_lastupdate.py */5 * * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 6h */15 * * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 1d 0 * * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 7d 0 0 * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 30d */5 * * * * /usr/share/weatherradio/bin/wr_rrd_lastupdate.py -o /usr/share/weatherradio/html/data/RTsensors_lastupdate.json /usr/share/weatherradio/sensors.rrd */5 * * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 6h -o /usr/share/weatherradio/html/data/RTsensors_6h.json /usr/share/weatherradio/sensors.rrd */15 * * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 1d -o /usr/share/weatherradio/html/data/RTsensors_1d.json /usr/share/weatherradio/sensors.rrd 0 * * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 7d -o /usr/share/weatherradio/html/data/RTsensors_7d.json /usr/share/weatherradio/sensors.rrd 0 0 * * * /usr/share/weatherradio/bin/wr_rrd_fetch.py -s 30d -o /usr/share/weatherradio/html/data/RTsensors_30d.json /usr/share/weatherradio/sensors.rrd 12 - Restart crontab service: sudo service cron restart Optional: Some crontabs hints: to see crontab file: crontab -l to erase all crontabfile configuration: crontab -r WeatherRadio repository: https://github.com/indilib/indi-3rdparty/blob/master/indi-duino/doc/Readme-WeatherRadio.md IndiForum topics: https://www.indilib.org/forum/development/11529-problem-to-install-web-page-weatherradio/82235.html https://indilib.org/forum/ekos/7287-weather-radio-don-t-want-connect/85652.html https://www.indilib.org/forum/domes/14490-how-to-create-a-weatherradio-web-interface.html#99963