I suggest the wee_import approach earlier in the thread
of course weewx won't do this by itself, the import needs to be triggered
for such tasks you can create a CRON job - in Linux (derivate)
installations usually the cronjob config file is /etc/crontab
if you want to update weewx every five minutes, you have to initiate the
download and import every five minutes
for the import there should be an example file in the weewx file system
for the wee_import itself see
version 4
https://weewx.com/docs/4.10/utilities.htm#wee_import_utility
version 5
https://weewx.com/docs/5.1/utilities/weectl-import-about/
example for an import.conf file attached
to avoid conflicts mentioned in the utilities guide, you better run your
cronjob in the middle of your archiving interval e.g. not at the full
five minutes (if that's your interval) but two or three minutes later to
avoid conflicting access to the database - the same applies to the
wee_database/weectl_database tool (|wee_database --rebuild daily /
weectl database rebuild-daily) |you may want to run after each import to
update your summary tables
On 23.03.2025 08:10, 'Tomasz Lewicki' via weewx-user wrote:
I don't know if this makes sense or not, I simply described my
attempts. tcpdump is unlikely to lie. But fine. Let's assume I don't
have the ability (or skill) to use the interceptor driver. Are there
other options for getting data from the station?
It seems to me that I have two ways - direct and indirect.
1. Direct
I found information about the weewx-sdr controller. From the
description it seems to me that it can help me in my situation. It
works well, because I have an SDR dongle that I use to receive ADS-B
signals.
2 Indirect
Downloading the data sent by the station to the WU and uploading it to
Weewx. I repeat the question from the previous message - does Weewx
allow import on the fly from WU, or only from manually fed files?
niedziela, 23 marca 2025 o 02:35:36 UTC+1 vince napisał(a):
Not sure your description makes much sense. There has to be some
traffic from the station to an ip off network. I’d expect ntp and
dns traffic as well.
On Saturday, March 22, 2025 at 12:48:59 PM UTC-7 Tomasz Lewicki wrote:
Today I had the opportunity to face the Garni 1025 station.
Unfortunately, the issue is much more complex than it might
seem at first. The universal driver “interceptor” is powerless
in this case. The station communicates with the environment in
a strange way. It turns out that the panel with the display
does not connect directly to the local network as a device
with an IP address in the range given by the DHCP server of
the home router, but probably forms a kind of bridge between
itself and the router.
The way I came to this was that after connecting the Raspberry
Pi with Weewx installed, I scanned the local network with my
smartphone and found no device in it that could be a Garni
panel. From the instructions, I learned that to configure the
panel, you need to press the appropriate button on the case
and enter AP mode. Then you can enter the default address
192.168.1.1 with a browser and there enter the SSID of your
home network and the password for it. I managed to connect the
laptop to the network created by the Garni panel and started
sniffing on the network traffic. Unfortunately, tcpdump didn't
show anything that would give any meaningful clues. The only
packets were sent by the Garni panel to my laptop. I couldn't
see any packets that Garni was routing to the router, yet it
must be transmitting something if data is being sent to the
WU, right?
Do you see any way that I could still try?
PS. Does Weewx allow you to import data from WU in "quasi real
time"? What I mean is, can I download data from WU, for
example, every 5-10 minutes and feed it to Weewx so that it
creates charts locally.
niedziela, 16 marca 2025 o 10:02:32 UTC+1 Tomasz Lewicki
napisał(a):
Thank you all for the helpful replies.
As I said, the station is out of my reach so I hoped to
prepare "dry run" and set up Weewx in my home environment
and then just connect in in target network, changing only
necassary things (WiFi network and so on). If it is not
possible, I have to use tcpdump "in situ", where Garni
works. But - replying to Reiner Lang's suggestion - Garni
sends the data to WU instantly; you can check it here ->
https://www.wunderground.com/dashboard/pws/IKOWAL30
In the meantime I got a photo of manual page from the
owner of the station (Garni doesn't share the manuals on
its website - it's strange) and then I was almost sure
that Garni uses Weathercloud protocol because setup allows
setting my own server (if someone is curious, here is a
photo -> http://stalker.udl.pl/temp/garni1025.jpeg). So I
looked into Weathercloud website and can confirm that
Garni 1025 uses Weathercloud protocol ->
https://weathercloud.net/en/compatible-devices List
contains plenty of manufacturers which I know. Rainer Lang
hinted that manufacturer is CCL (shame to say it but I did
not know this company). I found quite old "wcloud" driver
from Matthew Wall
(https://github.com/matthewwall/weewx-wcloud) but if I
understand it good, it allows only for uploading the data
from Weewx to Weathercloud server, not downloading it from
weather station.
So maybe the clones which Weewx supports are using some
"standard" protocol (whatever means "standard" when
talking about PWS) and I can use some known driver here...?
niedziela, 16 marca 2025 o 02:55:59 UTC+1 vince napisał(a):
Can you perhaps just listen for all tcp traffic and
not specify the src address and see what is on your
network ?
I’d think you might try to listen for tcp src
192.168.0.0/24 <http://192.168.0.0/24> dst not
192.168.0.0/24 <http://192.168.0.0/24> and not specify
any port.
Or listen for all tcp traffic for at least 10 minutes
and capture to a file, then transfer the pcap file
back to your computer to analyze in the
wireshark/ethereal gui later. If you could post a pcap
file somewhere I’m sure folks will see if they can
help determine the correct settings.
On Saturday, March 15, 2025 at 6:15:42 PM UTC-7
matthew wall wrote:
tomasz,
you are correct to first use tcpdump. once you see
data using tcpdump, then you can experiment with
interceptor to get the data into weewx. if the
station can successfully post to wunderground,
then the interceptor *should* be able to capture
the data. but you should first use tcpdump to
figure out the settings necessary to capture data.
is it possible to adjust the destination in the
weather station? if so, you could tell the
station to send to the computer running weewx,
instead of wunderground. but still use the
wunderground protocol.
can you control the dns entries on the network?
if so, make weatherstation.wunderground.com
<http://weatherstation.wunderground.com> resolve
to the computer running weewx, then run
interceptor in listen mode. if you already run a
web server on port 80 then you would have to make
interceptor listen on a port other than 80, then
adjust the web server configuration to send
traffic for
/weatherstation/updateweatherstation.php to that
port. or do it with firewall rules.
does your network switch support port mirroring?
if so, mirror the port that the weather station
uses and make interceptor listen on the mirrored port.
or if the station is wifi, make interceptor listen
on an interface that can see the wifi traffic.
but first use tcpdump in one of these
configurations to ensure that you can see the data
from the station.
m
--
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].
To view this discussion visit
https://groups.google.com/d/msgid/weewx-user/b9622ebb-15d9-43c8-96e5-083fce340079n%40googlegroups.com
<https://groups.google.com/d/msgid/weewx-user/b9622ebb-15d9-43c8-96e5-083fce340079n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
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].
To view this discussion visit
https://groups.google.com/d/msgid/weewx-user/dc1ebb9c-3495-4267-9980-faa02d5715ac%40gmail.com.
# EXAMPLE CONFIGURATION FILE FOR IMPORTING FROM THE WEATHER UNDERGROUND
#
# Copyright (c) 2009-2019 Tom Keffer <[email protected]> and Gary Roderick.
# See the file LICENSE.txt for your rights.
##############################################################################
# Specify our source. Available options are:
# CSV - import obs from a single CSV format file
# WU - import obs from a Weather Underground PWS history
# Cumulus - import obs from a one or more Cumulus monthly log files
# WD - import obs from a one or more WD monthly log files
# Format is:
# source = (CSV | WU | Cumulus)
source = WU
##############################################################################
[WU]
# Parameters used when importing from a WU PWS
# WU PWS Station ID to be used for import.
station_id = XXXXXXXX123
# WU API key to be used for import.
api_key = XXXXXXXXXXXXXXXXXXXXXX1234567890
#
# When importing WU data the following WeeWX database fields will be
# populated directly by the imported data (provided the corresponding data
# exists on WU):
# barometer
# dateTime
# dewpoint
# heatindex
# outHumidity
# outTemp
# radiation
# rain
# rainRate
# windchill
# windDir
# windGust
# windSpeed
# UV
#
# The following WeeWX database fields will be populated from other
# settings/config files:
# interval
# usUnits
#
# The following WeeWX database fields will be populated with values derived
# from the imported data provided the --calc-missing command line option is
# used during import:
# altimeter
# ET
# pressure
#
# The following WeeWX fields will be populated with derived values from the
# imported data provided the --calc-missing command line option is used
# during import. These fields will only be saved to the WeeWX database if
# the WeeWX schema has been modified to accept them. Note that the pyephem
# module is required in order to calculate maxSolarRad - refer WeeWX Users
# Guide.
# appTemp
# cloudbase
# humidex
# maxSolarRad
# windrun
# How will the interval field be determined for the imported records.
# Available options are:
# derive - Derive the interval field from the timestamp of successive
# records. This setting is best used when there are no missing
# records from period being imported. Missing records will
# cause the interval field to be incorrectly calculated for some
# records.
# conf - Use the interval setting from weewx.conf. This setting is
# best used if the records to be imported have been produced by
# WeeWX or some other means with the same archive interval as
# set in weewx.conf on this machine.
# x - Use a fixed interval of 'x' minutes for every record where 'x'
# is a number. This setting is best used if the records to be
# imported are equally spaced in time but there are some missing
# records.
# Due to WU frequently missing uploaded records, use of 'derive' may give
# incorrect or inconsistent interval values. Better results may be
# achieved by using the 'conf' setting (if WeeWX has been doing the WU
# uploading and the WeeWX archive_interval matches the WU observation
# spacing in time) or setting the interval to a fixed value (eg 5). The
# most appropriate setting will depend on the completeness and (time)
# accuracy of the WU data being imported.
# Format is:
# interval = (derive | conf | x)
interval = x
# Should the [StdQC] max/min limits in weewx.conf be applied to the
# imported data. This may be useful if the source has extreme values that
# are clearly incorrect for some observations. This is particulalrly useful
# for WU imports where WU often records clearly erroneous values against
# obs that are not reported. Available options are:
# True - weewx.conf [StdQC] max/min limits are applied.
# False - weewx.conf [StdQC] max/min limits are not applied.
# Format is:
# qc = (True | False)
qc = True
# Should any missing derived observations be calculated from the imported
# data if possible. Available options are:
# True - Any missing derived observations are calculated.
# False - Any missing derived observations are not calculated.
# Format is:
# calc_missing = (True | False)
calc_missing = True
# Specify how imported data fields that contain invalid data (eg a numeric
# field containing non-numeric data) are handled. Available options are:
# True - The invalid data is ignored, the WeeWX target field is set to
# None and the import continues.
# False - The import is halted.
# Format is:
# ignore_invalid_data = (True | False)
# Default is True.
ignore_invalid_data = True
# Imported records are written to archive in transactions of tranche
# records at a time. Increase for faster throughput, decrease to reduce
# memory requirements. Format is:
# tranche = x
# where x is an integer
tranche = 250
# Lower and upper bounds for imported wind direction. It is possible,
# particularly for a calculated direction, to have a value (eg -45) outside
# of the WeeWX limits (0 to 360 inclusive). Format is:
#
# wind_direction = lower,upper
#
# where :
# lower is the lower limit of acceptable wind direction in degrees
# (may be negative)
# upper is the upper limit of acceptable wind direction in degrees
#
# WU has at times been known to store large values (eg -9999) for wind
# direction, often no wind direction was uploaded to WU. The wind_direction
# parameter sets a lower and upper bound for valid wind direction values.
# Values inside these bounds are normalised to the range 0 to 360. Values
# outside of the bounds will be stored as None. Default is 0,360
wind_direction = 0,360