https://github.com/gjr80/weewx-gw1000/wiki has disappeared from GitHub

1,049 views
Skip to first unread message

Rainer Lang

unread,
Jun 1, 2025, 3:14:33 PMJun 1
to weewx-user

@Gary or others knowledgeable regarding the topic ...

Is there a special reason why this link doesn't work anymore ?

Or is this only a temporary thing ?

A search on GitHub with the "GW1000" keyword doesn't give any results ...

best regards
Rainer

Chuck Rhode

unread,
Jun 1, 2025, 3:47:46 PMJun 1
to weewx-user
On Sun, 1 Jun 2025 21:14:19 +0200
"'Rainer Lang' via weewx-user" <weewx...@googlegroups.com> wrote:

> Is there a special reason why this link doesn't work anymore ?

Me, too! I have an Ecowitt GW1200 half-way installed, and today is
the day I reached for the WeeWX driver. Arghhh!

--
.. Be Seeing You,
.. Chuck Rhode, Sheboygan, WI, USA
.. Weather: https://LacusVeris.com/Wx
.. 65° — Wind SE at 10 mph. Sky clear.

John Kline

unread,
Jun 1, 2025, 3:55:18 PMJun 1
to weewx...@googlegroups.com, weewx-user
I have a daily check for broken links on my website, and guess what credit broke today:

List of broken links and other issues:
https://github.com/gjr80
Line: 1062
Code: 404 Not Found

Not only have all of Gary’s repositories disappeared, Gary (gjr80) has also disappeared from github. Hopefully, this wasn’t intentional and Gary’s work will appear again soon.


> On Jun 1, 2025, at 12:47 PM, Chuck Rhode <charlescu...@gmail.com> wrote:
>
> On Sun, 1 Jun 2025 21:14:19 +0200
> --
> 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 visit https://groups.google.com/d/msgid/weewx-user/20250601144726.3a231199%40BigTimber.LacusVeris.com.

BarCar

unread,
Jun 4, 2025, 8:11:30 AMJun 4
to weewx-user
There's a fairly recent fork of the driver repo at https://github.com/hoetzgit/weewx-gw1000 but the wiki is not there.

Auchtermuchty Weather

unread,
Jun 29, 2025, 2:57:56 AMJun 29
to weewx-user
And at the top of the fork. I hope @gjr80 is OK:

 This repository was archived by the owner on Jun 17, 2025. It is now read-only."

Auchtermuchty Weather

unread,
Jun 29, 2025, 3:01:43 AMJun 29
to weewx-user
Tried emailing him just now and it bounced - address doesn't exist. This looks very worrying, as if Gary has departed this world and all trace has been erase :(

Tom -KQ5S

unread,
Jun 29, 2025, 6:44:21 AMJun 29
to weewx-user
This is interesting.   I haven’t conversed with Gary in a long time and the other day I sent an email to his gmail account that I used before.  The email came back undeliverable.  I see he posted to the group the end of May.

Tom


Tom Keffer

unread,
Jun 29, 2025, 7:17:39 AMJun 29
to weewx...@googlegroups.com
Matthew and I have tried everything we can think of to contact Gary, but nothing has worked --- it appears that he has disappeared. Very mysterious.

In the meantime, we need someone to step up and sort through the various forks of the Ecowitt driver and come up with something definitive, then host it.

Anyone willing to do that?

-tk

Tom -KQ5S

unread,
Jun 29, 2025, 7:54:51 AMJun 29
to weewx-user
I had a link to weewx on his home server.  It no longer works but if I go to the root of the server I get the Welcome to nginx screen so his server is still active which is reassuring.

Tom - KQ5S

steepleian

unread,
Jun 29, 2025, 8:40:55 AMJun 29
to weewx...@googlegroups.com
Tom and Matthew,
I am happy to do the hosting but I would need some support from someone who is much better versed in Python than I am. I have a fork of GW1000 which I believe is the last one. I also have a fork of the new driver Gary was working on which is intended to replace the GW1000 driver. The big feature on this is that it exploits the SD card feature of the GW3000 device to allow backfill of data. If anyone is willing to help me on the coding side I am happy to host.
Ian

On 29 Jun 2025, at 12:54, Tom -KQ5S <kq5...@gmail.com> wrote:

I had a link to weewx on his home server.  It no longer works but if I go to the root of the server I get the Welcome to nginx screen so his server is still active which is reassuring.

michael.k...@gmx.at

unread,
Jun 29, 2025, 8:42:24 AMJun 29
to weewx-user
I think it is less about being willing doing it, but being able doing it in way that is creating the best value for everyone. I'd be willing, but I don't have the resources to push myself on a python level, that would be sufficient to achieve this, apart from barely finding time for the Bootstrap skin. Rainer probably is probably more than enough challenged with his FOSHKplugin. But he and "Gyvate" have excellent connections to the manufacturer, who has proved several times that they are willing to communicate and support the community with information and fixes needed to provide solutions like a driver for a software like WeeWX. Maybe we find a way to bundle our individual strengths and develop the driver to the next level?

AFAIK there are two main challenges Gary faced recently:

- keeping up with Ecowitt's development
- introducing backfill which in theory is possible with the newest console that provide access not only to the local API, but to the SD-storage via the local API, like the GW3000

steepleian

unread,
Jun 29, 2025, 8:54:28 AMJun 29
to weewx...@googlegroups.com, weewx-user
Michael,
That backfill version is actually working and working well on the development fork I have. Have been running it on my test server for weeks without issue. 
I like your idea on collaborating our efforts. Gary’s last communication was that he was very close to completion so maybe it just needs some final polish.


On 29 Jun 2025, at 13:42, 'michael.k...@gmx.at' via weewx-user <weewx...@googlegroups.com> wrote:

I think it is less about being willing doing it, but being able doing it in way that is creating the best value for everyone. I'd be willing, but I don't have the resources to push myself on a python level, that would be sufficient to achieve this, apart from barely finding time for the Bootstrap skin. Rainer probably is probably more than enough challenged with his FOSHKplugin. But he and "Gyvate" have excellent connections to the manufacturer, who has proved several times that they are willing to communicate and support the community with information and fixes needed to provide solutions like a driver for a software like WeeWX. Maybe we find a way to bundle our individual strengths and develop the driver to the next level?

michael.k...@gmx.at

unread,
Jun 29, 2025, 10:07:09 AMJun 29
to weewx-user
From discussions in a german forum I know that ecowitt was straightening up some issues with their data formatting through the different devices, such as "-" for a missing value on the one console an "-.--" on the other and so on. I think it isn't much more left to do than being conform with little things like that. What's the link to the fork with this developments, did I miss it? I'd be happy to check it out on my test system.

Ian Millard

unread,
Jun 29, 2025, 10:21:10 AMJun 29
to weewx...@googlegroups.com

Ian Millard

unread,
Jun 29, 2025, 10:37:39 AMJun 29
to weewx...@googlegroups.com
These are the weewx.conf settings that I ended up using (I have both piezo and tipping rain sensors)

[EcowittHttp]
    # This section is for the Ecowitt local HTTP API driver.
    
    # the driver to use
    driver = user.ecowitt_http
    
    # how often to poll the device
    poll_interval = 8
    # how many attempts to contact the device before giving up
    max_tries = 3
    # wait time in seconds between retries to contact the device
    retry_wait = 2
    # max wait for device to respond to a HTTP request
    url_timeout = 3
    
    # whether to show all battery state data including nonsense data and 
    # sensors that are disabled sensors and connecting
    show_all_batt = False
    # whether to ignore battery state data from legacy WH40 sensors that do 
    # not provide valid battery state data
    ignore_legacy_wh40_battery = True
    # whether to always log unknown API fields, unknown fields are always 
    # logged at the debug level, this will log them at the info level
    log_unknown_fields = False
    
    # How often to check for device firmware updates, 0 disables firmware 
    # update checks. Available firmware updates are logged.
    firmware_update_check_interval = 86400
    
    # provide additional log information to help debug rainfall issues
    debug_rain = False
    # provide additional log information to help debug wind issues
    debug_wind = False
    # provide additional log information to help debug loop packet issues
    debug_loop = False
    # provide additional log information to help debug sensor issues
    debug_sensors = False
    ip_address = 192.168.1.100
    [[field_map_extensions]]
        batteryStatus1 = ws90.battery
        rain = rain.0x10.val
        stormRain = rain.0x0D.val
        rainRate = rain.0x0E.val
        hourRain = t_rainhour
        dayRain = rain.0x10.val
        weekRain = rain.0x11.val
        monthRain = rain.0x12.val
        yearRain = rain.0x13.val
        is_raining = piezoRain.srain_piezo.val
        p_rain = piezoRain.0x10.val
        p_stormRain = piezoRain.0x0D.val
        p_rainRate = piezoRain.0x0E.val
        p_hourRain = p_rainhour
        p_dayRain = piezoRain.0x10.val
        p_weekRain = piezoRain.0x11.val
        p_monthRain = piezoRain.0x12.val
        p_yearRain = piezoRain.0x13.val
        vpd = common_list.5.val
        lightning_distance = lightning.distance
        lightning_last_det_time = lightning.timestamp
        lightningcount = lightning.count
        pm2_5 = ch_pm25.1.PM25_RealAQI
        pm2_52_24h_avg = ch_pm25.1.PM25_24HAQI
        pm10_0 = co2.PM10
        luminosity = common_list.0x15.val

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

#   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:
        radiation = luminosity/126.7 if luminosity is not None else None
        luminosity = 0 if luminosity == None else luminosity
        UV = UV * 0.8272727272727273
        lightningcount = lightningcount if lightningcount > 0 else 0
        lightning_strike_count = lightningcount
        lightning_distance = None if lightning_strike_count == 0 else lightning_distance
        stormRain = 0 if stormRain == None else stormRain
        p_stormRain = 0 if p_stormRain == None else p_stormRain
        isRaining = is_raining

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

#   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
        vpd = prefer_hardware
        AirDensity = software
        altimeter = prefer_hardware
        appTemp = prefer_hardware
        barometer = prefer_hardware
        cloudbase = prefer_hardware
        dewpoint = prefer_hardware
        ET = software
        heatindex = prefer_hardware
        humidex = prefer_hardware
        inDewpoint = prefer_hardware
        maxSolarRad = prefer_hardware
        rainRate = prefer_hardware
        p_rainRate = prefer_hardware
        dayRain = prefer_hardware
        p_dayRain = prefer_hardware
        weekRain = prefer_hardware
        p_weekRain = prefer_hardware
        monthRain = prefer_hardware
        p_monthRain = prefer_hardware
        yearRain = prefer_hardware
        p_yearRain = prefer_hardware
        stormRain = prefer_hardware
        p_stormRain = prefer_hardware
        windchill = prefer_hardware
        windrun = software
        beaufort = prefer_hardware
        abs_humidity = prefer_hardware, archive
        p_rain = prefer_hardware
        lightning_strike_count = prefer_hardware
        rain = prefer_hardware
    [[WXXTypes]]
        
        [[[ET]]]
            
            wind_height = 5.0
    [[Delta]]
        [[[rain]]]
            input = t_rainyear
        [[[p_rain]]]
            input = p_rainyear
        [[[lightning_strike_count]]]
            input = lightningcount
        [[[lightning_distance]]]
            input = lightning_distance

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


On 29 Jun 2025, at 15:20, 'Ian Millard' via weewx-user <weewx...@googlegroups.com> wrote:

Hi Michael,
Here it is, this is the development branch, the main branch is not yet fully populated: -

Rainer Lang

unread,
Jul 1, 2025, 6:56:06 AMJul 1
to weewx...@googlegroups.com

regarding the backfilling between application restarts

the GW3000 (and WS6210) SD card csv file structure is completely documented in my FO/EW WiKi - as is the http API and the custom server structure
SD card: http://192.168.1.111/dokuwiki/doku.php?id=start#gw3000-csv

for the http API which is definitely much easier to handle than the earlier binary API: 
http://192.168.1.111/dokuwiki/doku.php?id=start#c_retrieval_of_sensor_data_from_the_local_network_via_http_call_local_http_api
and
http://192.168.1.111/dokuwiki/doku.php?id=start#b_retrieval_of_live_data_from_the_local_network_via_http_call_local_http_api

I can assist in answering questions and clarifying to my skill and capacity - and can also do driver testing
I've been doing this with the developers of two other rather well know datalogger software (CumulsuMX, Meteobridge) and I have at least one item
of each existing sensor

the existing driver for the binary API can/must still be used with some meanwhile legacy gateway models like the GW1000 and WH2650 
so we will have two drivers - call them GW1000 (binary) and GW3000 (http)

and, by the way, FOSHKplugin is Oliver 😉 - these laurels I don't deserve

Rainer Lang

unread,
Jul 1, 2025, 8:21:08 AMJul 1
to weewx...@googlegroups.com

@Ian
I had a brief rather superficial run through the Python code - looks like both backfilling options are implemented (ecowitt.net and SD card)
and the coding looks pretty complete

Now
how and where do you set the option(s)
- if backfilling is used or not
- if backfilling is via ecowitt.net
- if backfilling is via SD card

Ian Millard

unread,
Jul 1, 2025, 10:25:32 AMJul 1
to weewx...@googlegroups.com
@Rainer,

Regarding backfill questions, I think those settings may be the missing part of the jig-saw

I have just installed on a test server running a GW2000 device and the following occurs, looking for an API key but nowhere to enter one during the install process Therefore as it stands, the driver in its current state of development appears only to work with a GW3000 device with an SD card inserted: -

(weewx-venv) dvm@dvm:~$ sudo journalctl -u weewx -f

Jul 01 15:09:41 dvm python3[3781035]:     for rec in self.gen_ecowitt_archive_records(since_ts=lastgood_ts):

Jul 01 15:09:41 dvm python3[3781035]:   File "/home/dvm/weewx-data/bin/user/ecowitt_http.py", line 4876, in gen_ecowitt_archive_records

Jul 01 15:09:41 dvm python3[3781035]:     catchup_obj = self.catchup_factory()

Jul 01 15:09:41 dvm python3[3781035]:                   ^^^^^^^^^^^^^^^^^^^^^^

Jul 01 15:09:41 dvm python3[3781035]:   File "/home/dvm/weewx-data/bin/user/ecowitt_http.py", line 4924, in catchup_factory

Jul 01 15:09:41 dvm python3[3781035]:     return EcowittNetCatchup(api_key=self.api_key,

Jul 01 15:09:41 dvm python3[3781035]:                                      ^^^^^^^^^^^^

Jul 01 15:09:41 dvm python3[3781035]: AttributeError: 'EcowittHttpDriver' object has no attribute 'api_key'

Jul 01 15:09:42 dvm systemd[1]: weewx.service: Main process exited, code=exited, status=1/FAILURE

Jul 01 15:09:42 dvm systemd[1]: weewx.service: Failed with result 'exit-code.




vince

unread,
Jul 1, 2025, 12:54:28 PMJul 1
to weewx-user
Quick glance at the code says you need to add "api_key" and "app_key" to the [EcowittHttp] section in weewx.conf to get around that error

There are also some retries and tunings around line 3944 in the init routine, but I don't see a setting for "no catchup vs. this way vs. that way vs. these multiple ways" so to speak.  There are also debug settings around line 688 that can be enabled.

But.... if you look around line 3144 it seems to indicate catchup is not actually in the code at this time.  Just the plumbing towards that goal.

I guess enable all the debugging and do a test and see what happens (?)


Rainer Lang

unread,
Jul 1, 2025, 2:02:44 PMJul 1
to weewx...@googlegroups.com

the ecowitt.net backfill and the SD card backfill are mutually exclusive/excluding each other

in addition, the MAC address of the console in question is needed - also for the SD card download the MAC address is needed
=> a nested setup (as e.g. done in CumulusMX) will make sense

1. activate ecowitt.net by providing MAC, APP and API keys
2. if 1. is activated AND SD card is activated (MAC info available), then SD card backfill takes priority
=> something like a SD card backfill switch needs to be considered - more code inspection needed
3. SD card backfill should be possible without providing an APP/API key

also to consider (unless already done --> code inspection): 

the ecowitt.net lowest data resolution is 5 minutes, the SD card resolution (if so chosen) goes down to one minute
=> if you have a 300 second/5 minute archiving interval, the SD card data might have to run through the loop and accumulation process 
for all records whereas from ecowitt.net there is a 1:1 filling of the loop and archive table ("dictionary").

result: four more switches/options/parameters needed
1. app_key = key
2. api_kep = key
3. mac_address = MAC
4. SD_card = yes/no

--
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.

Rainer Lang

unread,
Jul 1, 2025, 2:42:12 PMJul 1
to Rainer Lang, weewx...@googlegroups.com

after some code inspection (and my understanding of Python) it appears (see catchup_factory(self) line 4897)
that at weewx startup, if a device with SD card is available under the IP address from weewx.conf, the EcowittDeviceCatchup class is executed.
If not, provided the API/APP key and MAC address info is available, the backfill ("catchup") via ecowitt.net is initiated.

So far there is no weewx.conf option available to keep the SD card backfilling/catchup from being executed.
SD card backfill takes precedence over ecowitt.net backfill.
The ecowitt.net backfill/catchup can be avoided by not providing the needed info (APP/API keys/MAC).

Tom Keffer

unread,
Jul 1, 2025, 2:55:28 PMJul 1
to weewx...@googlegroups.com, Rainer Lang
In case it's useful, let me note that StdArchive has an undocumented "no_catchup" option. If False, it will call genStartupRecords() and ask for all records since the last timestamp in the database. If True, then the catch up is not done.

It should probably be documented.

-tk

Rainer Lang

unread,
Jul 1, 2025, 3:48:48 PMJul 1
to Tom Keffer, weewx...@googlegroups.com, Rainer Lang

@Tom
thanks - that's very helpful information
taking this piece of information into account I think that all options needed are covered

Tom Keffer

unread,
Jul 1, 2025, 3:59:27 PMJul 1
to Rainer Lang, weewx...@googlegroups.com
Documented in commit 49def12.

-tk

Steeple Ian

unread,
Jul 1, 2025, 5:05:04 PMJul 1
to weewx-user
@Vince,

Catchup is most definetly working on GW3000 with SD card in situ so "plumbing" is at least partially working.

vince

unread,
Jul 1, 2025, 5:43:40 PMJul 1
to weewx-user
Cool. Thanks. I only have non-SD ecowitt  gateways and an unused WS3802 console.

(if anybody in the US wants to buy a very lightly used Ecowitt Essence 3 system (ws3802 ws85 wn32) for a nice cheap price email me :-)

Auchtermuchty Weather

unread,
Jul 3, 2025, 5:48:51 AMJul 3
to weewx-user


On Sunday, 29 June 2025 at 11:44:21 UTC+1 Tom -KQ5S wrote:
This is interesting.
<sip>

I call it deeply worrying. I was in touch with him around Easter when he said he was on the verge of having the catch-up ready for me to test. Then I was busy in various ways and his repository had vanished when I came back to looking for it. I have done some searching (probably not very effectively) and can't find a trace of him. 

Should point out it wasn't the only useful utility he had there - there was PolarWindPlot, and I think a couple more.

Worrying about Gary aside, where is the best place to download a copy of the driver with backfil?

steepleian

unread,
Jul 3, 2025, 7:20:39 AMJul 3
to weewx...@googlegroups.com, weewx-user
--
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.

Werner Krenn

unread,
Jul 3, 2025, 1:57:16 PMJul 3
to weewx-user
I looked at the driver and adjusted it, so that it works (at least for me)

You can find the adapted driver and some information about it:
https://github.com/WernerKr/Ecowitt-or-DAVIS-stations-and-Season-skin/blob/main/ecowitt_http

What doesn't work:
- the service function doesn't work
- loop packets aren't used (but they are picked up!).

Ian Millard

unread,
Jul 4, 2025, 3:36:09 AMJul 4
to weewx...@googlegroups.com

michael.k...@gmx.at

unread,
Jul 4, 2025, 3:52:19 AMJul 4
to weewx-user
Maybe it's worth to create an own repository for the driver(s) and assign the ownership and other roles to more than a single person and set up a strategy to work ist Issues, PRs, etc. to bundle the efforts from contributors in one place.

Auchtermuchty Weather

unread,
Jul 4, 2025, 11:45:37 AMJul 4
to weewx-user
Thanks for this Ian. When I have some spare time I will give it a whirl.

I have found the following in this thread:

If I search github for weewx-ecowitt there are more but sorted by recently updated


However, as above, I will try Ian's out. My last contact with Gary was on the 23rd April. :(

michael.k...@gmx.at

unread,
Jul 12, 2025, 5:25:31 AMJul 12
to weewx-user
Ian's fork doesn't support luminosity/radiation and pm/co2 values, probably other things. I've copied the contents of Werners version of https://github.com/WernerKr/Ecowitt-or-DAVIS-stations-and-Season-skin/blob/main/ecowitt_http/ecowitt_http.py over the one I've installed from Ian's fork, getting luminosity/radiation and pm/co2 working. Werner has posted about his work here: https://groups.google.com/g/weewx-user/c/-rbfcQsNo_s but I'm not sure how this really fits into Gary's work and their forks.

Ian Millard

unread,
Jul 12, 2025, 7:26:59 AMJul 12
to weewx...@googlegroups.com
@Michael,

I cannot test air quality data as I do have a device. However I am able to calculate: -

[StdCalibrate]
    
    [[Corrections]]
        radiation = luminosity/126.7 if luminosity is not None else None
        luminosity = 0 if luminosity == None else luminosity

michael.k...@gmx.at

unread,
Jul 12, 2025, 2:05:22 PMJul 12
to weewx-user
@Ian see: https://kainzbauer.net/weather/Test/Rif/ws68/index.html this is running the ecowitt http driver from your repo with the ecowitt_http.py from Werners repo.

Ian Millard

unread,
Jul 12, 2025, 4:53:50 PMJul 12
to weewx...@googlegroups.com
@Michael,

I am doing exactly the same thing. Can we share the pertinent parts of weewx.conf please? Obviously excluding sensitive information. If we can align our thoughts on this, I will update the repro to reflect. You can email me directly steep...@btinternet.com

Thanks,
Ian

michael.k...@gmx.at

unread,
Jul 13, 2025, 4:32:42 AMJul 13
to weewx-user
I've played around a little bit with the installation of your fork and Werners ecowitt_http.py and got many things working.

Calculation radiation from luminosity isn't required anymore, since the device is calculation it and it is mapped, but luminosity now has to be calculated :)
When backfilling data, the timestamp of the record of the device seems to be used, so with the default archive interval, when backfilling, you get values for 07:27(or whatever it would be in the particular case) instead of 07:30. Since WeeWX is accumulating values in an interval and storing these accumulations with the timestamp from the top of the interval, I don't think this is the desired behavior.

So, for now, I consider the following as relevant settings in my weewx.conf:

[Station]
    # 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 = EcowittHttp

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


[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
        luminosity = radiation*126.7 if radiation is not None else None
        lightning_distance = lightning_distance if lightning_strike_count > 0 else None

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

#   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]]
        co2 = 0, 65534, ppm # max value is one below the theoretical max, because sometimes after a battery change the sensor delivers the max value.
        pm1_0 = 0, 6553, microgram_per_meter_cubed
        pm2_5 = 0, 6553, microgram_per_meter_cubed
        pm4_0 = 0, 6553, microgram_per_meter_cubed
        pm10_0 = 0, 6553, microgram_per_meter_cubed

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

[EcowittHttp]
    # This section is for the Ecowitt Local HTTP API driver.
   
    # The device IP address:
    ip_address = 10.0.1.84
   
    # How often to poll the API, default is every 20 seconds:
    poll_interval = 10
   
    # The driver to use:
    driver = user.ecowitt_http
   
    # Is a WN32P used for indoor temperature, humidity and pressure
    wn32_indoor = True
   
    # Is a WN32 used for outdoor temperature and humidity
    wn32_outdoor = True
    # how many attempts to contact the device before giving up
    max_tries = 3
    # wait time in seconds between retries to contact the device
    retry_wait = 5
    # max wait for device to respond to a HTTP request
    url_timeout = 10
    [[catchup]]
        source = device # source = either, both, net, device  ## not set = None, default is then either or both

Rainer Lang

unread,
Jul 13, 2025, 5:34:03 AMJul 13
to weewx...@googlegroups.com


I don't think that this "deviated" timestamp is a real issue.

Assuming your weewx srchiving interval is 5 minutes (300 seconds) and also
assuming the GW3000 archive interval is also 5 minutes, its archiving time stamp will be whenever it starts archiving - any time between minute 00 and minute 05 and multiples to fill the hour. If the timestamp is not 00, 05, 15, ...,55, what is weewx supposed to do ? If the timestamp is 03 instead of 05, there is nothing to fill the loop with. So it will store with whatever the GW3000 timestamp was.

And where is the problem ? For the backfill period you will get the data that was stored in the GW3000 and then weewx will continue with 00, 05, 10 etc. whatever is the time once the backfill is completed. 
For this situation to be aligned and corrected with a full 5 minute archiving at the weewx end, you would have to recreate the timestamp - and create wrong data by the way as they didn't occur at that new "aligned" time.
For me there is no desired behaviour here - what was archived is stored. Accumulation only where accumulation is possible.
In my situation the GW3000 interval is two minutes, the weewx interval too. I don't care if the timestamp for the backfill period is 1, 3, 5, 7, 9 or 0, 2, 4, 6, 8.
I don't think that making weewx "correct" or better say "align" the timestamp (because this alignment will provide an incorrect time) is worth the effort.

Either, leave it as it is, or make sure your GW3000 archive at a full 5 minute interval timestamp or whatever is your weewx interval.
Anyhow, I don't see any issue with some records having a timestamp not matching the start minute of the weewx archiving during normal operation.

It may be different if e.g. the GW3000 interval is smaller/shorter than 5 minutes, at least so short, that more than one record will fit into the gap (assuming the weewx interval is still 5 minutes) - then the loop could be used for accumulation, but I don't say it needs to be done that way. 

It had such a situation before where my weewx instance crashed over a weekend and 72 hours of data were missing. But I had the data archived in my Meteobridge in a one minute interval and had one minute interval exports. Before editing the export file by removing 4 records for every five minutes, I simply imported them all. Less work, no harm done. 

another question: what do you mean by " top of the interval" ? The beginning or the end ? Weewx uses the timestamp of the end of loop interval. Only this makes sense for a correct accumulation.
The data from the GW3000 are the data at the time of the GW3000 archiving - no accumulation there.

michael.k...@gmx.at

unread,
Jul 13, 2025, 10:27:52 AMJul 13
to weewx-user
another question: what do you mean by " top of the interval" ?
In my understanding the top of the interval is the end.

I didn't address this behavior as an issue, I just asked (myself) the question, if this behavior is desired and how does this behavior fit into WeeWX? You're right that a 5-min average with an the interval of 07:22 to 07:27, imported for the WeeWX interval from 07:25 to 07:30 wouldn't be correct, but if your hardware only ever sent data in a 5-minute-interval, WeeWX would have stamped the same data from 07:27 with 07:30 when actively running and receiving these values as a loop package (setting any highs/lows to 07:27), but when incoming from backfill, an archive entry stamped with 07:27 is created. I consider this inconsistent behavior, without proposing either way "correct" or not.

For me there is no desired behaviour here - what was archived is stored. Accumulation only where accumulation is possible.
Im a bit confused: you state "there is no desired behavior" and in the same line you describe it: "what was archived is stored. Accumulation only where accumulation is possible." Accumulation would be possible, if there is more than one value in the device storage for an WeeWX archive_interval.
I've set the GW3000's interval to 1 min, to see what will happen: when backfilling, WeeWX now produces an archive entry every minute, that's in my understanding in contradiction to accumulate, when possible.

Anyway, I'm with you that this not a real issue and I also don't care if the backfilled data is aligned to the usual interval, but from a technical point of view worth discussing about.
Reply all
Reply to author
Forward
0 new messages