Davis Vantage Vue mit WeatherLink Live für WeeWX
Verfasst: 26 Okt 2023, 12:08
Ich habe mir eine Davis Vantage Vue mit WeatherLink Live gekauft um damit Wetterdaten auf meiner Webseite darzustellen.
Leider habe ich damit erhebliche Probleme und hoffe auf eure Hilfe.
Prizipiell läuft alles auf einem Raspberry Pi.
Also, ich kann auf die WeatherLink Live zugreifen:
Mein weewx.conf sieht so aus:
Starte ich den weewxd (sudo /home/weewx/bin/weewxd), so steht nachher im syslog folgendes:
Hat irgendjemand eine Idee was ich falsch mache?
Leider habe ich damit erhebliche Probleme und hoffe auf eure Hilfe.
Prizipiell läuft alles auf einem Raspberry Pi.
Also, ich kann auf die WeatherLink Live zugreifen:
curl -X GET -H "application/json" http://192.168.178.48:80/v1/real_time {"data":{"broadcast_port":22222,"duration":1200},"error":null}
curl -X GET -H "application/json" http://192.168.178.48:80/v1/current_conditions {"data":{"did":"001D0A71971A","ts":1698314232,"conditions":[{"lsid":661250,"data_structure_type":1,"txid":1,"temp": 54.6,"hum":85.4,"dew_point": 50.3,"wet_bulb": 52.0,"heat_index": 54.6,"wind_chill": 54.6,"thw_index": 54.6,"thsw_index":null,"wind_speed_last":0.00,"wind_dir_last":0,"wind_speed_avg_last_1_min":0.00,"wind_dir_scalar_avg_last_1_min":0,"wind_speed_avg_last_2_min":0.00,"wind_dir_scalar_avg_last_2_min":0,"wind_speed_hi_last_2_min":null,"wind_dir_at_hi_speed_last_2_min":null,"wind_speed_avg_last_10_min":0.06,"wind_dir_scalar_avg_last_10_min":340,"wind_speed_hi_last_10_min":5.00,"wind_dir_at_hi_speed_last_10_min":315,"rain_size":2,"rain_rate_last":0,"rain_rate_hi":0,"rainfall_last_15_min":0,"rain_rate_hi_last_15_min":0,"rainfall_last_60_min":0,"rainfall_last_24_hr":49,"rain_storm":91,"rain_storm_start_at":1698087360,"solar_rad":null,"uv_index":null,"rx_state":0,"trans_battery_flag":0,"rainfall_daily":5,"rainfall_monthly":167,"rainfall_year":167,"rain_storm_last":75,"rain_storm_last_start_at":1697662261,"rain_storm_last_end_at":1697904060},{"lsid":661249,"data_structure_type":4,"temp_in": 72.6,"hum_in":60.1,"dew_point_in": 58.0,"heat_index_in": 72.6},{"lsid":661248,"data_structure_type":3,"bar_sea_level":29.500,"bar_trend": 0.009,"bar_absolute":28.730}]},"error":null}
Mein weewx.conf sieht so aus:
# WEEWX CONFIGURATION FILE # # Copyright (c) 2009-2022 Tom Keffer <tkeffer@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 = 0 # Root directory of the weewx data file hierarchy for this station WEEWX_ROOT = /home/weewx # Whether to log successful operations. May get overridden below. log_success = True # Whether to log unsuccessful operations. May get overridden below. log_failure = True # Do not modify this. It is used when installing and updating weewx. version = 4.10.2 ############################################################################## # This section is for information about the station. [Station] # Description of the station location location = "Lauda-Koenigshofen, Germany" # Latitude in decimal degrees. Negative for southern hemisphere latitude = 49.560457 # Longitude in decimal degrees. Negative for western hemisphere. longitude = 9.707064 # Altitude of the station, with the unit it is in. This is used only # if the hardware cannot supply a value. altitude = 222, meter # Choose 'foot' or 'meter' for unit # Set to type of station hardware. There must be a corresponding stanza # in this file, which includes a value for the 'driver' option. station_type = Vantage # If you have a website, you may specify an URL #station_url = https://www.lauda-koenigshofen.com # If you have a website, you may specify an URL. This is required if you # intend to register your station. # 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 ############################################################################## [Vantage] # This section is for the Davis Vantage series of weather stations. # Connection type: serial or ethernet # serial (the classic VantagePro) # ethernet (the WeatherLinkIP or Serial-Ethernet bridge) type = ethernet # If the connection type is serial, a port must be specified: # Debian, Ubuntu, Redhat, Fedora, and SuSE: # /dev/ttyUSB0 is a common USB port name # /dev/ttyS0 is a common serial port name # BSD: # /dev/cuaU0 is a common serial port name port = /dev/ttyUSB0 # If the connection type is ethernet, an IP Address/hostname is required: host = 192.168.178.48 ###################################################### # The rest of this section rarely needs any attention. # You can safely leave it "as is." ###################################################### # Serial baud rate (usually 19200) baudrate = 19200 # TCP port (when using the WeatherLinkIP) tcp_port = 22222 #tcp_port = 80 # TCP send delay (when using the WeatherLinkIP): tcp_send_delay = 0.5 # The type of LOOP packet to request: 1 = LOOP1; 2 = LOOP2; 3 = both loop_request = 1 # The id of your ISS station (usually 1). If you use a wind meter connected # to a anemometer transmitter kit, use its id iss_id = 1 # How long to wait for a response from the station before giving up (in # seconds; must be greater than 2) timeout = 5 # How long to wait before trying again (in seconds) wait_before_retry = 2 # How many times to try before giving up: max_tries = 4 # Vantage model Type: 1 = Vantage Pro; 2 = Vantage Pro2 model_type = 1 # The driver to use: driver = weewx.drivers.vantage ############################################################################## # This section is for uploading data to Internet sites [StdRESTful] # Uncomment and change to override logging for uploading services. # log_success = True # log_failure = True [[StationRegistry]] # To register this weather station with weewx, set this to true, # then fill out option 'station_url', located in the [Station] section above. register_this_station = true [[AWEKAS]] # This section is for configuring posts to AWEKAS. # If you wish to post to AWEKAS, set the option 'enable' to true, then 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 post to CWOP, set the option 'enable' to true, # then specify the station ID (e.g., CW1234). enable = false station = replace_me # If this is an APRS (radio amateur) station, specify the # passcode (e.g., 12345). Otherwise, ignore. passcode = replace_me [[PWSweather]] # This section is for configuring posts to PWSweather.com. # If you wish to post to PWSweather.com, set the option 'enable' to true, then 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 post to WOW, set the option 'enable' to true, then 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 post to the Weather Underground, set the option 'enable' to true, then # 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 # Uncomment and change to override logging for reports # log_success = True # log_failure = True # The database binding indicates which data should be used in reports. data_binding = wx_binding # 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 = false 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 = false HTML_ROOT = public_html/mobile [[StandardReport]] # This is the old "Standard" skin. By default, it is not enabled. skin = Standard enable = false [[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 = false user = replace_me password = replace_me server = replace_me # The ftp server name, e.g, www.myserver.org path = replace_me # The 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 = 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 # Options in the [[Defaults]] section below will apply to all reports. # What follows are a few of the more popular options you may want to # uncomment, then change. [[Defaults]] # Which language to use for all reports. Not all skins support all languages. # You can override this for individual reports. lang = en # Which unit system to use for all reports. Choices are 'us', 'metric', or 'metricwx'. # You can override this for individual reports. unit_system = metric [[[Units]]] # Option "unit_system" above sets the general unit system, but overriding specific unit # groups is possible. These are popular choices. Uncomment and set as appropriate. # 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_pressure = mbar # Options are 'inHg', 'mmHg', 'mbar', or 'hPa' # 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_temperature = degree_C # Options are 'degree_C', 'degree_F', or 'degree_K' # The following line is used to keep the above lines indented properly. # It can be ignored. unused = unused # Uncommenting the following section frequently results in more # attractive formatting of times and dates, but may not work in # your locale. [[[[TimeFormats]]]] # day = %H:%M # week = %H:%M on %A # month = %d-%b-%Y %H:%M # year = %d-%b-%Y %H:%M # rainyear = %d-%b-%Y %H:%M # current = %d-%b-%Y %H:%M # ephem_day = %H:%M # ephem_year = %d-%b-%Y %H:%M # The following line is used to keep the above lines indented properly. # It can be ignored. unused = unused [[[Labels]]] # Users frequently change the labels for these observation types [[[[Generic]]]] # inHumidity = Inside Humidity # inTemp = Inside Temperature # outHumidity = Outside Humidity # outTemp = Outside Temperature # extraTemp1 = Temperature1 # extraTemp2 = Temperature2 # extraTemp3 = Temperature3 # The following line is used to keep the above lines indented properly. # It can be ignored. unused = unused ############################################################################## # 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 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 # Uncomment and change to override logging for archive operations # log_success = True # log_failure = True # The data binding used to save archive records data_binding = wx_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.manager.DaySummaryManager # The schema defines the structure of the database. # It is *only* used when the database is created. schema = schemas.wview_extended.schema ############################################################################## # This section defines various databases. [Databases] # A SQLite database is simply a single file [[archive_sqlite]] database_name = weewx.sdb database_type = SQLite # MySQL [[archive_mysql]] database_name = weewx 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 (use quotes to 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
Starte ich den weewxd (sudo /home/weewx/bin/weewxd), so steht nachher im syslog folgendes:
Oct 26 12:00:46 raspberrypi weewx[23288] INFO __main__: Initializing weewx version 4.10.2 Oct 26 12:00:46 raspberrypi weewx[23288] INFO __main__: Using Python 3.9.2 (default, Mar 12 2021, 04:06:34) #012[GCC 10.2.1 20210110] Oct 26 12:00:46 raspberrypi weewx[23288] INFO __main__: Located at /usr/bin/python3 Oct 26 12:00:46 raspberrypi weewx[23288] INFO __main__: Platform Linux-6.1.21-v7+-armv7l-with-glibc2.31 Oct 26 12:00:46 raspberrypi weewx[23288] INFO __main__: Locale is 'de_DE.UTF-8' Oct 26 12:00:46 raspberrypi weewx[23288] INFO __main__: Using configuration file /home/weewx/weewx.conf Oct 26 12:00:46 raspberrypi weewx[23288] INFO __main__: Debug is 0 Oct 26 12:00:46 raspberrypi weewx[23288] INFO weewx.engine: Loading station type Vantage (weewx.drivers.vantage) Oct 26 12:00:46 raspberrypi weewx[23288] ERROR weewx.drivers.vantage: Socket error while opening port 22222 to ethernet host 192.168.178.48. Oct 26 12:00:46 raspberrypi weewx[23288] ERROR weewx.engine: Import of driver failed: [Errno 111] Verbindungsaufbau abgelehnt (<class 'weewx.WeeWxIOError'>) Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** Traceback (most recent call last): Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 351, in openPort Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** self.socket.connect((self.host, self.port)) Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** ConnectionRefusedError: [Errno 111] Verbindungsaufbau abgelehnt Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** During handling of the above exception, another exception occurred: Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** Traceback (most recent call last): Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/engine.py", line 119, in setupStation Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** self.console = loader_function(config_dict, self) Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 40, in loader Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** return VantageService(engine, config_dict) Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 1989, in __init__ Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** Vantage.__init__(self, **config_dict[DRIVER_NAME]) Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 531, in __init__ Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** self.port.openPort() Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 355, in openPort Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** raise weewx.WeeWxIOError(ex) Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL weewx.engine: **** weewx.WeeWxIOError: [Errno 111] Verbindungsaufbau abgelehnt Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL __main__: Unable to load driver: [Errno 111] Verbindungsaufbau abgelehnt Oct 26 12:00:46 raspberrypi weewx[23288] CRITICAL __main__: **** Exiting...
Hat irgendjemand eine Idee was ich falsch mache?