You found a bug that prevented reports from being run against anything other than the wx_binding.
Fixed in commit 4a55a7 <https://github.com/weewx/weewx/commit/4a55a780a42f761633a096a0151c2644d6b48c8e> . Substitute your version of cheetahgenerator.py with this version <https://raw.githubusercontent.com/weewx/weewx/master/bin/weewx/cheetahgenerator.py> and let me know how it goes. -tk On Wed, Jun 28, 2017 at 9:24 AM, Philipp Gräser <[email protected]> wrote: > Hi, > > I have installed weewx on an BananaPi with Ubuntu 14.04.5 LTS as operating > system. I am using a KlimaloggPro weather station. I have intalled the > software over the DEB package and made the installation as descripted by > Methew for this device. The communication works and the DB is filled with > values. > > The problem ist the report engine. The pictures are generated, but there > is no index.html. I guess there is a problem with the name of the DB. I > don't know where to fix this issue and would appreciate if you could help > me. Thanks in advance. > > Here are some log and config: > > *log:* > Jun 28 18:20:27 lemaker weewx[1240]: manager: Added record 2017-06-28 > 18:20:00 CEST (1498666800) to database 'weewx-kl.sdb' > Jun 28 18:20:27 lemaker weewx[1240]: manager: Added record 2017-06-28 > 18:20:00 CEST (1498666800) to daily summary in 'weewx-kl.sdb' > Jun 28 18:20:28 lemaker weewx[1240]: reportengine: Caught unrecoverable > exception in generator weewx.cheetahgenerator.CheetahGenerator > Jun 28 18:20:28 lemaker weewx[1240]: **** Attempt to open a > non-existent database /var/lib/weewx/weewx.sdb > Jun 28 18:20:28 lemaker weewx[1240]: **** Traceback (most recent > call last): > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/reportengine.py", line 239, in run > Jun 28 18:20:28 lemaker weewx[1240]: **** obj.start() > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/reportengine.py", line 273, in start > Jun 28 18:20:28 lemaker weewx[1240]: **** self.run() > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/cheetahgenerator.py", line 154, in run > Jun 28 18:20:28 lemaker weewx[1240]: **** > self.initExtensions(gen_dict[section_name]) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/cheetahgenerator.py", line 198, in initExtensions > Jun 28 18:20:28 lemaker weewx[1240]: **** > self.search_list_objs.append(class_(self)) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/cheetahgenerator.py", line 479, in __init__ > Jun 28 18:20:28 lemaker weewx[1240]: **** archive = > self.generator.db_binder.get_manager() > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/manager.py", line 840, in get_manager > Jun 28 18:20:28 lemaker weewx[1240]: **** > self.manager_cache[data_binding] = open_manager(manager_dict, initialize) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/manager.py", line 992, in open_manager > Jun 28 18:20:28 lemaker weewx[1240]: **** > manager_dict['table_name']) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weewx/manager.py", line 101, in open > Jun 28 18:20:28 lemaker weewx[1240]: **** connection = > weedb.connect(database_dict) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weedb/__init__.py", line 89, in connect > Jun 28 18:20:28 lemaker weewx[1240]: **** return > driver_mod.connect(**db_dict) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weedb/sqlite.py", line 52, in connect > Jun 28 18:20:28 lemaker weewx[1240]: **** return > Connection(database_name=database_name, SQLITE_ROOT=SQLITE_ROOT, **argv) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weedb/sqlite.py", line 29, in guarded_fn > Jun 28 18:20:28 lemaker weewx[1240]: **** return fn(*args, > **kwargs) > Jun 28 18:20:28 lemaker weewx[1240]: **** File > "/usr/share/weewx/weedb/sqlite.py", line 117, in __init__ > Jun 28 18:20:28 lemaker weewx[1240]: **** raise > weedb.NoDatabaseError("Attempt to open a non-existent database %s" % > self.file_path) > Jun 28 18:20:28 lemaker weewx[1240]: **** NoDatabaseError: > Attempt to open a non-existent database /var/lib/weewx/weewx.sdb > Jun 28 18:20:28 lemaker weewx[1240]: **** Generator terminated > Jun 28 18:20:29 lemaker weewx[1240]: imagegenerator: Generated 11 images > for kl in 0.99 seconds > > > *Cofig:*# WEEWX CONFIGURATION FILE > # > # Copyright (c) 2009-2015 Tom Keffer <[email protected]> > # See the file LICENSE.txt for your rights. > > ############################################################ > ################## > > # This section is for general configuration information. > > # Set to 1 for extra debug info, otherwise comment it out or set to zero > debug = 0 > > # Root directory of the weewx data file hierarchy for this station > WEEWX_ROOT = / > > # How long to wait before timing out a socket (FTP, HTTP) connection > socket_timeout = 20 > > # Do not modify this. It is used when installing and updating weewx. > version = 3.7.1 > > ############################################################ > ################## > > # This section is for information about the station. > > [Station] > > # Description of the station location > location = "Sankt Augustin, Germany" > > # Latitude and longitude in decimal degrees > latitude = 50.700 > longitude = 7.200 > > # Altitude of the station, with unit it is in. This is downloaded from > # from the station if the hardware supports it. > altitude = 50, meter > > # Set to type of station hardware. There must be a corresponding stanza > # in this file with a 'driver' parameter indicating the driver to be > used. > station_type = KlimaLogg > > # If you have a website, you may specify an URL > #station_url = http://www.example.com > > # The start of the rain year (1=January; 10=October, etc.). This is > # downloaded from the station if the hardware supports it. > rain_year_start = 1 > > # Start of week (0=Monday, 6=Sunday) > week_start = 6 > > ############################################################ > ################## > > # This section is for uploading data to Internet sites > > [StdRESTful] > > [[StationRegistry]] > # To register this weather station with weewx, set this to true > register_this_station = false > > [[AWEKAS]] > # This section is for configuring posts to AWEKAS. > > # If you wish to do this, set the option 'enable' to true, > # and specify a username and password. > enable = false > username = replace_me > # To guard against parsing errors, put your password in quotes: > password = replace_me > > [[CWOP]] > # This section is for configuring posts to CWOP. > > # If you wish to do this, set the option 'enable' to true, > # and specify the station ID (e.g., CW1234). > enable = false > station = replace_me > > # If this is an APRS (radio amateur) station, uncomment > # the following and replace with a passcode (e.g., 12345). > #passcode = replace_me (APRS stations only) > > [[PWSweather]] > # This section is for configuring posts to PWSweather.com. > > # If you wish to do this, set the option 'enable' to true, > # and specify a station and password. > enable = false > station = replace_me > # To guard against parsing errors, put your password in quotes: > password = replace_me > > [[WOW]] > # This section is for configuring posts to WOW. > > # If you wish to do this, set the option 'enable' to true, > # and specify a station and password. > enable = false > station = replace_me > # To guard against parsing errors, put your password in quotes: > password = replace_me > > [[Wunderground]] > # This section is for configuring posts to the Weather Underground. > > # If you wish to do this, set the option 'enable' to true, > # and specify a station (e.g., 'KORHOODR3') and password. > enable = false > station = replace_me > # To guard against parsing errors, put your password in quotes: > password = replace_me > > # Set the following to True to have weewx use the WU "Rapidfire" > # protocol. Not all hardware can support it. See the User's Guide. > rapidfire = False > > ############################################################ > ################## > > # This section specifies what reports, using which skins, to generate. > > [StdReport] > > # Where the skins reside, relative to WEEWX_ROOT > SKIN_ROOT = /etc/weewx/skins > > # Where the generated reports should go, relative to WEEWX_ROOT > HTML_ROOT = /var/www/html/weewx > > # The database binding indicates which data should be used in reports. > data_binding = kl_binding > [[kl]] > skin = kl > HTML_ROOT = /var/www/html/weewx/kl > > [[FTP]] > # FTP'ing the results to a webserver is treated as just another > report, > # albeit one with an unusual report generator! > skin = Ftp > > # If you wish to use FTP, uncomment and fill out the next four > lines. > #user = replace with the ftp username > #password = replace with the ftp password; put in quotes to guard > against parsing errors. > #server = replace with the ftp server name, e.g, > www.threefools.org > #path = replace with the ftp destination directory (e.g., /weather) > > # Set to True for an FTP over TLS (FTPS) connection. Not all > servers > # support this. > secure_ftp = False > > # To upload files from something other than what HTML_ROOT is set > # to above, specify a different HTML_ROOT here. > #HTML_ROOT = /var/www/html/weewx > > # Most FTP servers use port 21 > port = 21 > > # Set to 1 to use passive mode, zero for active mode > passive = 1 > > [[RSYNC]] > # rsync'ing to a webserver is treated as just another report > skin = Rsync > > # If you wish to use rsync, you must configure passwordless ssh > using > # public/private key authentication from the user account that > weewx > # runs as to the user account on the remote machine where the files > # will be copied. > # > # The following three lines determine where files will be sent. > #server = replace with the rsync server name, e.g, > www.threefools.org > #path = replace with the rsync destination directory (e.g., > /weather) > #user = replace with the rsync username > > # Rsync can be configured to remove files from the remote server if > # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if > you > # make a mistake in the remote path, you could could > unintentionally > # cause unrelated files to be deleted. Set to 1 to enable remote > file > # deletion, zero to allow files to accumulate remotely. > delete = 0 > > ############################################################ > ################## > > # This service acts as a filter, converting the unit system coming from > # the hardware to a unit system in the database. > > [StdConvert] > > # The target_unit affects only the unit system in the database. Once > # chosen it cannot be changed without converting the entire database. > # Modification of target_unit after starting weewx will result in > # corrupt data - the database will contain a mix of US and METRIC data. > # > # The value of target_unit does not affect the unit system for > # reporting - reports can display US, Metric, or any combination of > units. > # > # In most cases, target_unit should be left as the default: US > # > # In particular, those migrating from a standard wview installation > # should use US since that is what the wview database contains. > > # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING! > target_unit = US # Options are 'US', 'METRICWX', or 'METRIC' > > ############################################################ > ################## > > # This section can adjust data using calibration expressions. > > [StdCalibrate] > > [[Corrections]] > # For each type, an arbitrary calibration expression can be given. > # It should be in the units defined in the StdConvert section. > # Example: > foo = foo + 0.2 > > ############################################################ > ################## > > # This section is for quality control checks. If units are not specified, > # values must be in the units defined in the StdConvert section. > > [StdQC] > > [[MinMax]] > barometer = 26, 32.5, inHg > outTemp = -40, 120, degree_F > inTemp = 10, 120, degree_F > outHumidity = 0, 100 > inHumidity = 0, 100 > windSpeed = 0, 120, mile_per_hour > pressure = 24, 34.5, inHg > > ############################################################ > ################## > > # This section controls the origin of derived values. > > [StdWXCalculate] > > [[Calculations]] > # Derived quantities are calculated by this service. Possible > values are: > # hardware - use the value provided by hardware > # software - use the value calculated by weewx > # prefer_hardware - use value provide by hardware if available, > # otherwise use value calculated by weewx > > pressure = prefer_hardware > barometer = prefer_hardware > altimeter = prefer_hardware > windchill = prefer_hardware > heatindex = prefer_hardware > dewpoint = prefer_hardware > inDewpoint = prefer_hardware > rainRate = prefer_hardware > > ############################################################ > ################## > > # For hardware that supports it, this section controls how often the > # onboard clock gets updated. > > [StdTimeSynch] > > # How often to check the weather station clock for drift (in seconds) > clock_check = 14400 > > # How much it can drift before we will correct it (in seconds) > max_drift = 5 > > ############################################################ > ################## > > # This section is for configuring the archive service. > > [StdArchive] > > # If the station hardware supports data logging then the archive > interval > # will be downloaded from the station. Otherwise, specify it (in > seconds). > archive_interval = 300 > > # If possible, new archive records are downloaded from the station > # hardware. If the hardware does not support this, then new archive > # records will be generated in software. > # Set the following to "software" to force software record generation. > record_generation = hardware > > # Whether to include LOOP data in hi/low statistics > loop_hilo = True > > # The data binding used to save archive records > data_binding = kl_binding > > ############################################################ > ################## > > # This section binds a data store to a database. > > [DataBindings] > > [[wx_binding]] > # The database must match one of the sections in [Databases]. > # This is likely to be the only option you would want to change. > database = archive_sqlite > # The name of the table within the database > table_name = archive > # The manager handles aggregation of data for historical summaries > manager = weewx.wxmanager.WXDaySummaryManager > # The schema defines the structure of the database. > # It is *only* used when the database is created. > schema = schemas.wview.schema > [[kl_binding]] > manager = weewx.wxmanager.WXDaySummaryManager > database = kl_sqlite > table_name = archive > schema = user.kl.schema > > ############################################################ > ################## > > # This section defines various databases. > > [Databases] > > # A SQLite database is simply a single file > [[archive_sqlite]] > database_type = SQLite > database_name = weewx.sdb > > # MySQL > [[archive_mysql]] > database_type = MySQL > database_name = weewx > [[kl_mysql]] > database_name = weewx-kl > database_type = MySQL > [[kl_sqlite]] > database_name = weewx-kl.sdb > database_type = SQLite > > ############################################################ > ################## > > # This section defines defaults for the different types of databases. > > [DatabaseTypes] > > # Defaults for SQLite databases > [[SQLite]] > driver = weedb.sqlite > # Directory in which the database files are located > SQLITE_ROOT = /var/lib/weewx > > # Defaults for MySQL databases > [[MySQL]] > driver = weedb.mysql > # The host where the database is located > host = localhost > # The user name for logging in to the host > user = weewx > # The password for the user name. Put in quotes to guard against > parsing errors. > password = weewx > > ############################################################ > ################## > > # This section configures the internal weewx engine. > > [Engine] > > [[Services]] > # This section specifies the services that should be run. They are > # grouped by type, and the order of services within each group > # determines the order in which the services will be run. > prep_services = weewx.engine.StdTimeSynch > data_services = , > process_services = weewx.engine.StdConvert, > weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices. > StdWXCalculate > archive_services = weewx.engine.StdArchive > restful_services = weewx.restx.StdStationRegistry, > weewx.restx.StdWunderground, weewx.restx.StdPWSweather, > weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS > report_services = weewx.engine.StdPrint, weewx.engine.StdReport > > ############################################################ > ################## > > [KlimaLogg] > # This section is for the TFA KlimaLogg series of weather stations. > > # The driver to use > driver = user.kl > > # Radio frequency to use between USB transceiver and console: US or EU > # US uses 915 MHz, EU uses 868.3 MHz. Default is EU. > transceiver_frequency = EU > > # The station model, e.g., 'TFA KlimaLoggPro' or 'TFA KlimaLogg' > model = TFA KlimaLogg Pro > > # Polling interval is indicates how often, in seconds, to request data > # from the sensors. > polling_interval = 10 > > -- > You received this message because you are subscribed to the Google Groups > "weewx-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
