Problems running Fine Offset + Klimalogg Pro

107 views
Skip to first unread message

weerman

unread,
May 20, 2021, 8:06:50 AM5/20/21
to weewx-user
Hi all,

I'm trying to run both klimalogg pro and Fine Offset WH 1080 on my rbp 2. It has worked before, but four weeks ago my rp2 froze so i had to set it up again including weewx. 

Since then i got this error from my klp installation.

May 20 13:52:04 raspberrypi weewx-fineoffset[30390] INFO weewx.restx: StationRegistry: Published record 2021-05-20 13:41:59 CEST (1621510919)
May 20 13:52:04 raspberrypi weewx-fineoffset[30390] INFO weewx.engine: Starting main packet loop.
May 20 13:52:05 raspberrypi weewx-fineoffset[30390] INFO weewx.drivers.fousb: station status {'unknown': 0, 'rain_overflow': 0, 'lost_connection': 0} (0)
May 20 13:52:53 raspberrypi weewx-klp[30429] ERROR user.kl: unable to terminate RF thread after 60 seconds
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__: Caught unrecoverable exception:
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****  Unknown data binding ''wx_binding''
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****  Traceback (most recent call last):
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/manager.py", line 686, in get_manager_dict_from_config
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      manager_dict = dict(config_dict['DataBindings'][data_binding])
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/usr/lib/python3/dist-packages/configobj.py", line 554, in __getitem__
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      val = dict.__getitem__(self, key)
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****  KeyError: 'wx_binding'
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****  During handling of the above exception, another exception occurred:
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****  Traceback (most recent call last):
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/home/weewx/bin/weewxd", line 151, in main
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      engine = weewx.engine.StdEngine(config_dict)
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 93, in __init__
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      self.loadServices(config_dict)
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 161, in loadServices
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      obj = weeutil.weeutil.get_object(svc)(self, config_dict)
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/wxservices.py", line 91, in __init__
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      self.db_manager = engine.db_binder.get_manager(data_binding=data_binding, initialize=True)
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/manager.py", line 583, in get_manager
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      default_binding_dict=defaults)
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/manager.py", line 688, in get_manager_dict_from_config
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****      raise weewx.UnknownBinding("Unknown data binding '%s'" % e)
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****  weewx.UnknownBinding: Unknown data binding ''wx_binding''
May 20 13:52:53 raspberrypi weewx-klp[30429] CRITICAL __main__:     ****  Exiting.
May 20 13:56:06 raspberrypi weewx-fineoffset[30390] INFO weewx.manager: Added record 2021-05-20 13:55:00 CEST (1621511700) to database 'weewx.sdb'
May 20 13:56:06 raspberrypi weewx-fineoffset[30390] INFO weewx.manager: Added record 2021-05-20 13:55:00 CEST (1621511700) to daily summary in 'weewx.sdb'
May 20 13:56:14 raspberrypi weewx-fineoffset[30390] INFO weewx.cheetahgenerator: Generated 8 files for report SeasonsReport in 6.44 seconds
May 20 13:56:15 raspberrypi weewx-fineoffset[30390] INFO weewx.imagegenerator: Generated 15 images for report SeasonsReport in 1.50 seconds
May 20 13:56:15 raspberrypi weewx-fineoffset[30390] INFO weewx.reportengine: Copied 5 files to /home/weewx/public_html
May 20 13:56:17 raspberrypi weewx-fineoffset[30390] INFO weewx.cheetahgenerator: Generated 7 files for report SmartphoneReport in 1.79 seconds
May 20 13:56:17 raspberrypi weewx-fineoffset[30390] INFO weewx.imagegenerator: Generated 6 images for report SmartphoneReport in 0.52 seconds
May 20 13:56:17 raspberrypi weewx-fineoffset[30390] INFO weewx.reportengine: Copied 6 files to /home/weewx/public_html/smartphone
May 20 13:56:18 raspberrypi weewx-fineoffset[30390] INFO weewx.cheetahgenerator: Generated 1 files for report MobileReport in 0.17 seconds
May 20 13:56:18 raspberrypi weewx-fineoffset[30390] INFO weewx.imagegenerator: Generated 4 images for report MobileReport in 0.38 seconds
May 20 13:56:18 raspberrypi weewx-fineoffset[30390] INFO weewx.reportengine: Copied 2 files to /home/weewx/public_html/mobile
May 20 13:56:26 raspberrypi weewx-fineoffset[30390] INFO weewx.reportengine: ftpgenerator: Ftp'd 35 files in 8.29 seconds

As far as i understand the error, something seems to be wrong in the binding section, it should be "kl_binding" for the klima logg pro and it says so in the klp config file
as you can see here:

##############################################################################

#   This section binds a data store to a database.

[DataBindings]
    
    [[kl_binding]]
        schema = user.kl.schema
        table_name = archive
        database = kl_sqlite
        manager = weewx.wxmanager.WXDaySummaryManager

##############################################################################

#   This section defines various databases.

[Databases]
    
    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_name = klp.sdb
        database_type = SQLite
    
    # MySQL
    [[archive_mysql]]
        database_name = klp
        database_type = MySQL

##############################################################################

#   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 = %(WEEWX_ROOT)s/archive
    
    # 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 (quotes guard against parsing errors)
        password = weewx

##############################################################################

#   This section configures the internal weewx engine.

[Engine]
    
    # The following section specifies which services should be run and in what order.
    [[Services]]
        prep_services = weewx.engine.StdTimeSynch
        data_services = ,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
        xtype_services = weewx.wxxtypes.StdWXXTypes, weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater, weewx.wxxtypes.StdDelta
        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

Anyone having an idea what i could do? 

Thanks

Georg

Rainer Lang

unread,
May 20, 2021, 9:05:26 AM5/20/21
to weerman, weewx-user

Hi

I'm also using KlimaloggPro

in my weewx.conf the sections look like below
it also has an [[wx_binding]] and creates an extra sqlite DB weewx.sdb which is empty and never updated,
but somehow it seems it needs to be there.
Maybe it's just redundant but it works 😉
I'm running weewx 4.4.0 for the KLP installation.

Same with the [Databases] section
So I would try to add the below lines to your weewx.conf and see what it gives

Did you do any version update (weewx, Python) when that happened ?

#--------------- weewx.conf excerpt start -----------------

#   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.manager.DaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.wview_extended.schema

    [[kl_binding]]
        manager = weewx.wxmanager.WXDaySummaryManager
        database = kl_sqlite
        table_name = archive
        schema = user.kl.schema

 [Databases]  
    # A SQLite database is simply a single file
   

[[archive_sqlite]]
        database_name = weewx.sdb
        database_type = SQLite

    [[kl_sqlite]]
        database_name = weewx-kl.sdb


        database_type = SQLite

    # MySQL
    [[archive_mysql]]

        database_name = weewx
        database_type = MySQL
    [[kl_mysql]]
        database_name = weewx-kl
        database_type = MySQL

#--------------- weewx.conf excerpt end -----------------


##############################################################################

#   This section defines defaults for the different types of databases.


--
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 weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/37fbc6c9-f36c-405b-b50c-830f5aca2e34n%40googlegroups.com.

gjr80

unread,
May 20, 2021, 4:34:24 PM5/20/21
to weewx-user
Hi,

What binding have you specified under [StdArchive]? You should also be looking at the startup log for the weewx-klp instance to see what bindings are being used. I am guessing this is reproducible? I would set debug = 1 in the WeeWX config file used by weewx-klp and restart weewx-klp. The startup log will indicate what bindings are being used. When the error occurs we should be able to work out the context in which the binding is being used, that may give a clue. WeeWX defaults to using wx_binding if no binding is specified for some operations, so that is possibly the source of wx_binding.

WeeWX should work if wx_binding is not specified (provided another binding is specified), if it doesn’t it’s a bug that should be fixed.

Gary

Rainer Lang

unread,
May 20, 2021, 5:31:07 PM5/20/21
to weerman, weewx-user

your [StdArchive] section in weewx.conf should look like this

[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 = 60
   
    # 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

if there is still "data_binding = wx_binding", then that's the cause of the error

--
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 weewx-user+...@googlegroups.com.

weerman

unread,
May 20, 2021, 5:53:15 PM5/20/21
to weewx-user
Hi,

This is my [StdArchive] section of my klp.conf file.

##############################################################################

#   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 = software
    
    # Whether to include LOOP data in hi/low statistics
    loop_hilo = True
    
    # The data binding used to save archive records
    data_binding = kl_binding
    
    # Whether to log successful archive operations
    log_success = True
    
    # Whether to log unsuccessful archive operations
    log_failure = True

##############################################################################

Rainer Lang

unread,
May 20, 2021, 6:00:50 PM5/20/21
to weewx...@googlegroups.com, weerman

Apart from Gary's suggestions for switching on debug = 1 in weewx.conf and restart ....

the only difference I see in (those parts of weewx.conf shared) is that your record_generation is set to "software" while mine is set to "hardware".
Not sure if this could have an impact, but it's surely worth trying

gjr80

unread,
May 20, 2021, 6:25:07 PM5/20/21
to weewx-user
Changing record_generation should not have any effect, if it does it is masking an underlying problem. I would much prefer trying to identify the underlying cause in case there is a wider issue we need to address.

Gary

weerman

unread,
May 20, 2021, 6:27:44 PM5/20/21
to weewx-user
Hi,

Thanks for the advice, but unfortunality it didn't help. Still get the wx_bindings error again.

May 21 00:21:54 raspberrypi weewx-klp[23811] INFO __main__: Initializing weewx version 4.5.1
May 21 00:21:54 raspberrypi weewx-klp[23811] INFO __main__: Using Python 3.5.3 (default, Jan 19 2017, 14:11:04) #012[GCC 6.3.0 20170124]
May 21 00:21:54 raspberrypi weewx-klp[23811] INFO __main__: Platform Linux-4.9.41-v7+-armv7l-with-debian-9.1
May 21 00:21:54 raspberrypi weewx-klp[23811] INFO __main__: Locale is 'de_DE.UTF-8'
May 21 00:21:54 raspberrypi weewx-klp[23811] INFO __main__: PID file is /var/run/weewx-klp.pid
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO __main__: Using configuration file /etc/weewx/klp.conf
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO __main__: Debug is 1
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG __main__: Initializing engine
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO weewx.engine: Loading station type KlimaLogg (user.kl)
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: driver version is 1.4.2
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: channel is 1
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: frequency is EU
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: using sensor map for kl schema
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: sensor map is: {'temp0': 'Temp0', 'temp7': 'Temp7', 'temp8': 'Temp8', 'humidity8': 'Humidity8', 'temp6': 'Temp6', 'batteryStatus0': 'BatteryStatus0', 'humidity7': 'Humidity7', 'temp3': 'Temp3', 'batteryStatus4': 'BatteryStatus4', 'humidity2': 'Humidity2', 'rxCheckPercent': 'SignalQuality', 'batteryStatus8': 'BatteryStatus8', 'batteryStatus3': 'BatteryStatus3', 'batteryStatus7': 'BatteryStatus7', 'temp5': 'Temp5', 'temp4': 'Temp4', 'humidity1': 'Humidity1', 'batteryStatus5': 'BatteryStatus5', 'humidity4': 'Humidity4', 'humidity5': 'Humidity5', 'batteryStatus2': 'BatteryStatus2', 'batteryStatus6': 'BatteryStatus6', 'temp2': 'Temp2', 'batteryStatus1': 'BatteryStatus1', 'humidity0': 'Humidity0', 'humidity6': 'Humidity6', 'temp1': 'Temp1', 'humidity3': 'Humidity3'}
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: catchup limited to 51200 records
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: timing is 300 ms (0.300 s)
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: CommunicationService.init
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: comm_interval is 8
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: logger_channel is 1
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: found transceiver at bus= device=
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: manufacturer: b'LA CROSSE TECHNOLOGY'
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: product: b'Weather Direct Light Wireless Device'
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: interface: 0
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: claiming USB interface 0
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: frequency standard: EU
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: base frequency: 868300000
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: frequency correction: 96416 (0x178a0)
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: adjusted frequency: 910574957 (0x3646456d)
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: frequency registers: 36 46 45 6d
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: transceiver identifier: 25 (0x0019)
May 21 00:21:54 raspberrypi weewx-klp[23816] INFO user.kl: transceiver serial: 01010312190025
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG user.kl: startRFThread: spawning RF thread
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG user.kl: setting up rf communication
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
May 21 00:21:55 raspberrypi weewx-klp[23816] INFO weewx.engine: StdConvert target unit is 0x1
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdQC
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG user.kl: stopRFThread: waiting for RF thread to terminate
May 21 00:22:55 raspberrypi weewx-klp[23816] ERROR user.kl: unable to terminate RF thread after 60 seconds
May 21 00:22:55 raspberrypi weewx-klp[23816] DEBUG user.kl: releasing USB interface
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__: Caught unrecoverable exception:
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****  Unknown data binding ''wx_binding''
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****  Traceback (most recent call last):
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/manager.py", line 686, in get_manager_dict_from_config
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      manager_dict = dict(config_dict['DataBindings'][data_binding])
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/usr/lib/python3/dist-packages/configobj.py", line 554, in __getitem__
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      val = dict.__getitem__(self, key)
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****  KeyError: 'wx_binding'
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****  During handling of the above exception, another exception occurred:
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****  Traceback (most recent call last):
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/home/weewx/bin/weewxd", line 151, in main
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      engine = weewx.engine.StdEngine(config_dict)
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 93, in __init__
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      self.loadServices(config_dict)
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 161, in loadServices
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      obj = weeutil.weeutil.get_object(svc)(self, config_dict)
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/wxservices.py", line 91, in __init__
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      self.db_manager = engine.db_binder.get_manager(data_binding=data_binding, initialize=True)
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/manager.py", line 583, in get_manager
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      default_binding_dict=defaults)
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/manager.py", line 688, in get_manager_dict_from_config
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****      raise weewx.UnknownBinding("Unknown data binding '%s'" % e)
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****  weewx.UnknownBinding: Unknown data binding ''wx_binding''
May 21 00:22:55 raspberrypi weewx-klp[23816] CRITICAL __main__:     ****  Exiting.


Here's is the debug log file


May 20 23:57:53 raspberrypi weewx-klp[17428] DEBUG __main__: Initializing engine
May 20 23:57:53 raspberrypi weewx-klp[17428] DEBUG user.kl: using sensor map for kl schema
May 20 23:57:53 raspberrypi weewx-klp[17428] DEBUG user.kl: CommunicationService.init
May 20 23:57:53 raspberrypi weewx-klp[17428] DEBUG user.kl: claiming USB interface 0
May 20 23:57:53 raspberrypi weewx-klp[17428] DEBUG user.kl: frequency standard: EU
May 20 23:57:53 raspberrypi weewx-klp[17428] DEBUG user.kl: frequency registers: 36 46 45 6d
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG user.kl: startRFThread: spawning RF thread
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG user.kl: setting up rf communication
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Loading service weewx.engine.StdQC
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
May 20 23:57:54 raspberrypi weewx-klp[17428] DEBUG user.kl: stopRFThread: waiting for RF thread to terminate
May 20 23:58:54 raspberrypi weewx-klp[17428] DEBUG user.kl: releasing USB interface
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG __main__: Initializing engine
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: using sensor map for kl schema
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: CommunicationService.init
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: claiming USB interface 0
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: frequency standard: EU
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: frequency registers: 36 46 45 6d
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: startRFThread: spawning RF thread
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: setting up rf communication
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Loading service weewx.engine.StdQC
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
May 21 00:07:03 raspberrypi weewx-klp[19839] DEBUG user.kl: stopRFThread: waiting for RF thread to terminate
May 21 00:08:03 raspberrypi weewx-klp[19839] DEBUG user.kl: releasing USB interface
May 21 00:10:41 raspberrypi weewx-klp[20807] DEBUG __main__: Initializing engine
May 21 00:10:41 raspberrypi weewx-klp[20807] DEBUG user.kl: using sensor map for kl schema
May 21 00:10:41 raspberrypi weewx-klp[20807] DEBUG user.kl: CommunicationService.init
May 21 00:10:41 raspberrypi weewx-klp[20807] DEBUG user.kl: claiming USB interface 0
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG user.kl: frequency standard: EU
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG user.kl: frequency registers: 36 46 45 6d
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG user.kl: startRFThread: spawning RF thread
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG user.kl: setting up rf communication
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Loading service weewx.engine.StdQC
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
May 21 00:10:42 raspberrypi weewx-klp[20807] DEBUG user.kl: stopRFThread: waiting for RF thread to terminate
May 21 00:11:42 raspberrypi weewx-klp[20807] DEBUG user.kl: releasing USB interface
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG __main__: Initializing engine
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: using sensor map for kl schema
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: CommunicationService.init
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: claiming USB interface 0
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: frequency standard: EU
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: frequency registers: 36 46 45 6d
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: startRFThread: spawning RF thread
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: setting up rf communication
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Loading service weewx.engine.StdQC
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
May 21 00:13:32 raspberrypi weewx-klp[21592] DEBUG user.kl: stopRFThread: waiting for RF thread to terminate
May 21 00:14:32 raspberrypi weewx-klp[21592] DEBUG user.kl: releasing USB interface
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG __main__: Initializing engine
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: using sensor map for kl schema
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: CommunicationService.init
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: claiming USB interface 0
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: frequency standard: EU
May 21 00:21:54 raspberrypi weewx-klp[23816] DEBUG user.kl: frequency registers: 36 46 45 6d
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG user.kl: startRFThread: spawning RF thread
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG user.kl: setting up rf communication
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.engine.StdQC
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
May 21 00:21:55 raspberrypi weewx-klp[23816] DEBUG user.kl: stopRFThread: waiting for RF thread to terminate
May 21 00:22:55 raspberrypi weewx-klp[23816] DEBUG user.kl: releasing USB interface

Can someone reproduce this error?

regards

Georg 

gjr80

unread,
May 20, 2021, 6:43:17 PM5/20/21
to weewx-user
Thanks. Just to give the complete picture could you post a sanitised weewx.conf, that might be easier done using the output from wee_debug. If using wee_debug just check the output for sensitive info before posting, wee_debug should obfuscate such info but it’s not perfect.

Gary

weerman

unread,
May 20, 2021, 7:08:22 PM5/20/21
to weewx-user
Hi Gary,

With sanatised you mean void of sensitive information as passwords and usernames?

Here's my klp.conf

# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2021 Tom Keffer <tke...@gmail.com>
# 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 = 1

# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /home/weewx

# Whether to log successful operations
log_success = True

# Whether to log unsuccessful operations
log_failure = True

# 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 = 4.5.1

##############################################################################

#   This section is for information about the station.

[Station]
    
    # Description of the station location
    location = "Bremerhaven, Germany"
    
    # Latitude in decimal degrees. Negative for southern hemisphere
    latitude = 53.56
    # Longitude in decimal degrees. Negative for western hemisphere.
    longitude = 8.58
    
    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 14, meter    # Choose 'foot' or 'meter' for unit
    
    # 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://ws-twischkamp.de/weewx
    
    # 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 = 0

##############################################################################

[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

##############################################################################

#   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 = true
    
    [[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.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        username = replace_me
        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.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        station = replace_me
        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.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        station = replace_me
        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.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        station = replace_me
        password = replace_me
        
        # If you plan on using wunderfixer, set the following
        # to your API key:
        api_key = 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 = skins
    
    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = public_html
    
    # The database binding indicates which data should be used in reports.
    data_binding = kl_binding
    
    # Whether to log a successful operation
    log_success = True
    
    # Whether to log an unsuccessful operation
    log_failure = True
    
    # Each of the following subsections defines a report that will be run.
    # See the customizing guide to change the units, plot types and line
    # colors, modify the fonts, display additional sensor data, and other
    # customizations. Many of those changes can be made here by overriding
    # parameters, or by modifying templates within the skin itself.
    
    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = true
    
    [[SmartphoneReport]]
        # The SmartphoneReport uses the 'Smartphone' skin, and the images and
        # files are placed in a dedicated subdirectory.
        skin = Smartphone
        enable = true
        HTML_ROOT = public_html/smartphone
    
    [[MobileReport]]
        # The MobileReport uses the 'Mobile' skin, and the images and files
        # are placed in a dedicated subdirectory.
        skin = Mobile
        enable = true
        HTML_ROOT = public_html/mobile
    
    [[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, set "enable" to "true", then
        # fill out the next four lines.
        # Use quotes around passwords to guard against parsing errors.
        enable = true
        user = 
        password = 
        server = 
        path = /html/weewx
        
        # 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 = public_html
        
        # 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 to the user account on the remote machine where the files
        # will be copied.
        #
        # If you wish to use rsync, set "enable" to "true", then
        # fill out server, user, and path.
        # The server should appear in your .ssh/config file.
        # The user is the username used in the identity file.
        # The path is the destination directory, such as /var/www/html/weather.
        # Be sure that the user has write permissions on the destination!
        enable = false
        server = replace_me
        user = replace_me
        path = replace_me
        
        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = public_html
        
        # 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
    
    ####
    
    # Various options for customizing your reports.
    
    [[Defaults]]
        
        [[[Units]]]
            
            # The following section sets what unit to use for each unit group.
            # NB: The unit is always in the singular. I.e., 'mile_per_hour',
            # NOT 'miles_per_hour'
            [[[[Groups]]]]
                
                group_altitude = meter    # Options are 'foot' or 'meter'
                group_degree_day = degree_C_day    # Options are 'degree_F_day' or 'degree_C_day'
                group_distance = km    # Options are 'mile' or 'km'
                group_pressure = mbar    # Options are 'inHg', 'mmHg', 'mbar', 'hPa', or 'kPa'
                group_rain = mm    # Options are 'inch', 'cm', or 'mm'
                group_rainrate = mm_per_hour    # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
                group_speed = meter_per_second    # Options are 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second'
                group_speed2 = meter_per_second2    # Options are 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2'
                group_temperature = degree_C    # Options are 'degree_F' or 'degree_C'
            
            # The following section sets the formatting for each type of unit.
            [[[[StringFormats]]]]
                
                centibar = %.0f
                cm = %.2f
                cm_per_hour = %.2f
                degree_C = %.1f
                degree_F = %.1f
                degree_compass = %.0f
                foot = %.0f
                hPa = %.1f
                hour = %.1f
                inHg = %.3f
                inch = %.2f
                inch_per_hour = %.2f
                km = %.1f
                km_per_hour = %.0f
                km_per_hour2 = %.1f
                knot = %.0f
                knot2 = %.1f
                kPa = %.2f
                mbar = %.1f
                meter = %.0f
                meter_per_second = %.1f
                meter_per_second2 = %.1f
                mile = %.1f
                mile_per_hour = %.0f
                mile_per_hour2 = %.1f
                mm = %.1f
                mmHg = %.1f
                mm_per_hour = %.1f
                percent = %.0f
                second = %.0f
                uv_index = %.1f
                volt = %.1f
                watt_per_meter_squared = %.0f
                NONE = "   N/A"
            
            # The following section overrides the label used for each type of unit
            [[[[Labels]]]]
                
                meter = " meter", " meters"    # You may prefer "metre".
                day = " day", " days"
                hour = " hour", " hours"
                minute = " minute", " minutes"
                second = " second", " seconds"
                NONE = ""
            
            # The following section sets the format for each time scale.
            # The values below will work in every locale, but they may not look
            # particularly attractive.
            [[[[TimeFormats]]]]
                
                hour = %H:%M
                day = %X
                week = %X (%A)
                month = %x %X
                year = %x %X
                rainyear = %x %X
                current = %x %X
                ephem_day = %X
                ephem_year = %x %X
            
            [[[[Ordinates]]]]
                
                # Ordinal directions. The last one is for no wind direction
                directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW, N/A
            
            # The following section sets the base temperatures used for the
            #  calculation of heating, cooling, and growing degree-days.
            [[[[DegreeDays]]]]
                
                # Base temperature for heating days, with unit:
                heating_base = 65, degree_F
                # Base temperature for cooling days, with unit:
                cooling_base = 65, degree_F
                # Base temperature for growing days, with unit:
                growing_base = 50, degree_F
            
            # A trend takes a difference across a time period. The following
            # section sets the time period, and how big an error is allowed to
            # still be counted as the start or end of a period.
            [[[[Trend]]]]
                
                time_delta = 10800    # 3 hours
                time_grace = 300    # 5 minutes
        
        # The labels to be used for each observation type
        [[[Labels]]]
            
            # Set to hemisphere abbreviations suitable for your location:
            hemispheres = N, S, E, W
            
            # Formats to be used for latitude whole degrees, longitude whole
            # degrees, and minutes:
            latlon_formats = %02d, %03d, %05.2f
            
            # Generic labels, keyed by an observation type.
            [[[[Generic]]]]
                barometer = Barometer
                dewpoint = Dew Point
                ET = ET
                heatindex = Heat Index
                inHumidity = Inside Humidity
                inTemp = Inside Temperature
                outHumidity = Humidity
                outTemp = Outside Temperature
                radiation = Radiation
                rain = Rain
                rainRate = Rain Rate
                UV = UV Index
                windDir = Wind Direction
                windGust = Gust Speed
                windGustDir = Gust Direction
                windSpeed = Wind Speed
                windchill = Wind Chill
                windgustvec = Gust Vector
                windvec = Wind Vector
                extraTemp1 = Temperature1
                extraTemp2 = Temperature2
                extraTemp3 = Temperature3
                
                # Sensor status indicators
                
                rxCheckPercent = Signal Quality
                txBatteryStatus = Transmitter Battery
                windBatteryStatus = Wind Battery
                rainBatteryStatus = Rain Battery
                outTempBatteryStatus = Outside Temperature Battery
                inTempBatteryStatus = Inside Temperature Battery
                consBatteryVoltage = Console Battery
                heatingVoltage = Heating Battery
                supplyVoltage = Supply Voltage
                referenceVoltage = Reference Voltage
        
        [[[Almanac]]]
            
            # The labels to be used for the phases of the moon:
            moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, Full, Waning gibbous, Last quarter, Waning crescent

##############################################################################

#   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:
##############################################################################

#   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
        pressure = 24, 34.5, inHg
        outTemp = -40, 120, degree_F
        inTemp = 10, 120, degree_F
        outHumidity = 0, 100
        inHumidity = 0, 100
        windSpeed = 0, 120, mile_per_hour
        rain = 0, 10, inch

##############################################################################

#   This section controls the origin of derived values.

[StdWXCalculate]
    
    [[Calculations]]
        # How to calculate derived quantities.  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
        altimeter = prefer_hardware
        appTemp = prefer_hardware
        barometer = prefer_hardware
        cloudbase = prefer_hardware
        dewpoint = prefer_hardware
        ET = prefer_hardware
        heatindex = prefer_hardware
        humidex = prefer_hardware
        inDewpoint = prefer_hardware
        maxSolarRad = prefer_hardware
        rainRate = prefer_hardware
        windchill = prefer_hardware
        windrun = 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
    
    # Whether to log successful archive operations
    log_success = True
    
    # Whether to log unsuccessful archive operations
    log_failure = True

##############################################################################

#   This section binds a data store to a database.

[DataBindings]
    
    [[kl_binding]]
        schema = user.kl.schema
        table_name = archive
        database = kl_sqlite
        manager = weewx.wxmanager.WXDaySummaryManager

##############################################################################

#   This section defines various databases.

[Databases]
    
    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_name = weewx.sdb
        database_type = SQLite

  [[kl_sqlite]]
        database_name = weewx-kl.sdb
        database_type = SQLite
    
    # MySQL
    [[archive_mysql]]
        database_name = weewx
        database_type = MySQL

    [[kl_mysql]]
        database_name = weewx-kl

gjr80

unread,
May 21, 2021, 2:28:55 AM5/21/21
to weewx-user
Georg,

The issue you are encountering is an undocumented requirement to tell the StdWXCalculate service the binding you are using if you are using a binding other than the default wx_binding. Edit weewx.conf and under [StdWXCalculate] insert the line binding = kl_binding, it should look something like this:

[StdWXCalculate]
    data_binding = kl_binding
    [[Calculations]]
        ....

restart WeeWX and it should be fine.

Gary

Rainer Lang

unread,
May 21, 2021, 5:41:28 AM5/21/21
to weewx...@googlegroups.com, gjr80
That is interesting - so now come my question here:

how come my KLP installation is running without errors without having this entry ?

Is this because I'm still running it under weewx 4.4.0 or
is it, because I have the wx_binding additionally activated in [Databases] and a related DB (even though empty) ?
Thanks
Rainer

gjr80

unread,
May 21, 2021, 6:01:47 AM5/21/21
to weewx-user
The reason you don’t see the same error is because you have defined a binding named wx_binding. In your case when StdWXCalculate is initialised WeeWX first looks for a binding under [StdWXCalculate] and when it cannot find one WeeWX tries to use the default wx_binding. Which of course WeeWX finds and WeeWX continues without error. In Georg’s case there is no binding named wx_binding and hence the error. Georg could define an unused binding named wx_binding, that would prevent Georg’s error, but when StdWXCalculate tries to obtain historical data to calculate any derived obs that historical data would not be available (since wx_binding refers to an unused database) and the derived obs will be inaccurate or more likely None.

Gary

gjr80

unread,
May 21, 2021, 9:02:30 PM5/21/21
to weewx-user
Just to tie this off the following will be implemented as of v4.6.0:
  • the StdWXCalculate data binding will be logged on startup
  • the log will also warn if the data bindings used by StdWXCalculate and StdArchive are different
  • the StdWXCalculate data_binding config option will be documented in the User's Guide
Gary
Reply all
Reply to author
Forward
0 new messages