I figured out what causes the irregular sending intervals of my WH2650 (firmware 1.6.8)...
First I experimented by removing the batteries of all sensors but that did not seem to have any effect on the timing.
I then looked at the network traffic. All weather services are disabled in WS View (apart from custom upload) but the console still tries to phone home to
http://cdnrtpdate.ecowitt.net/data/report/. Because I use the console for internal use only all communication with the outside world is blocked by my firewall (*). That means the console can't phone home and probably hangs the thread until a timeout passes. My guess is that every few minutes the send time of the custom upload overlaps with that timeout period and pushes it back until the timeout passes.
This theory is confirmed by redirecting cdnrtpdate.ecowitt.net to my own internal webserver via a DNS override. I put an empty page at /data/report/. That seems to satisfy the phone home service as the sending irregularity of the custom upload was now completely gone. I still had to use 59 seconds to get the interval to 1 minute and over a day it still drifts 4-5 seconds, but that's acceptable.
(*) I know the Ecowitt consoles use online NTP servers for time synchronization (pool.ntp.org and time.nist.gov?) so blocking all Internet communication is problematic for accurate timestamping. I solved that by redirecting all traffic on port 123 (NTP) to my own local NTP server.
The phone home occurs precisely every 61 seconds (really, there must be a +1 bug somewhere in the Ecowitt interval code) and the message format is the typical Ecowitt message that starts with the PASSKEY. There's no "confidential" information in there but the ecowitt.net upload should be off according to the settings. This proves you can't trust IOT devices. Hence why I block all Internet access by default unless required.
I'm a bit puzzled by the ecowitt.net settings in WS View. As an experiment I enabled the ecowitt.net upload with a 2 minute interval. However, this did not seem to have any effect. The console still uploaded every 61 seconds. It's as if the screen in WS View does not work at all (it does work: the settings persist when I close and reopen WS View). Is this a bug in the console firmware or is this because I redirected cdnrtpdate.ecowitt.net/data/report/ to an empty page? Does the console expect a reply from ecowitt.net?
I also discovered a bug in the old WS View app for iOS (fixed in WS View Plus): Changing the settings of the ecowitt.net upload erases the path of the custom upload.
Anyway, the conclusion is that to get accurate intervals for a custom upload you must
Note that when you have other weather services enabled, downtime or slowness of these services may impact the timing. I only tested the custom server.
This information applies to the WH2650 console with firmware 1.6.8 and very likely also the GW1000/1100. The behavior may be different with other consoles and firmwares. I can't test that - I only have this WH2650.