Hi all,
I have been working on a WeeWX driver for a while and would be glad of a
few people to try it out.
The short version: as many stations as you like, of as many kinds as you
like, all at once and all into one database. Consoles that upload,
anything on a cable or USB that WeeWX already has a driver for, sensors
that have to be polled over the network, and cheap radio sensors. Mix
them however you want.
Then the part I would most like looked at. A web page shows every
reading any of them sends, tells you which database column each one is
going to, and lets you move it somewhere else with a dropdown. No
editing weewx.conf, no restart. And it tries quite hard not to let two
of them write into the same column by accident.

https://github.com/hilman2/weewx-ultimate-push

If you would like to help, there is an issue open for each protocol and each
piece of hardware, saying what would be useful to send back:
https://github.com/hilman2/weewx-ultimate-push/issues

A station that works is just as useful to hear about as one that does not, 
so
please do post either way.

*Placing a field, without guessing*
The web page lists every raw field a station sends. For each one it shows 
what
arrived, the last value, which column it is going to, whether that column 
exists
yet, and how many earlier values are already sitting in it.
If you want a reading somewhere else, pick from the dropdown.
It offers the fields that measure the same thing first, then everything 
else, then "nowhere", then a name of your own. The change takes effect on 
the next upload.
If a column does not exist yet, there is a button that creates it, and the
weectl command is shown for anyone who would rather run it themselves.

The reason for all this is that some placements are not the driver's to 
make. A
WN34 reports on tf_ch1 whether it is a spike in a raised bed or a lead in a
pool, and nothing in the upload says which.
Only the person who installed it knows. So the driver asks rather than 
guesses.

*Not writing into the wrong column*
This is the part I have put the most care into, because getting it wrong is 
not
something you can undo later.
Nothing unknown is written on a guess. Every protocol has a catalog of field
names. A field that continues a series the catalog already has is taken (if
leafwetness_ch1 to ch4 are known, ch5 follows). Anything else is reported 
and
left unwritten until you say where it belongs.
A column belongs to whoever fills it first. If a second station sends a 
reading
for a column another station already owns, it is dropped rather than written
over the top.
One station is the main station, everything else is an extra. The main 
station's
readings go where they belong, and every station added afterwards goes to
extraTempN and extraHumidN on a channel of its own. So two consoles do not 
end
up taking turns writing outTemp every few seconds.
A column with history in it is not touched without asking twice. The driver
reads the archive table first and tells you what is in there, with the row 
count
and the dates, before anything is written. Continuing a series is right 
when it
is the same sensor in the same place and wrong when it is not, and that is 
your
call, not the driver's.
There is also a related problem this tries to avoid, which is readings 
quietly
going missing. A current HP2561AE Pro sends 45 fields. The interceptor 
driver
maps 25 of them and logs "unrecognized parameter" for the rest, lightning 
sensor
and soil probes included. Between protocols it happens with no log entry at 
all:
a Wunderground station read with an Ecowitt catalog records temperature and
humidity and silently records no pressure, no indoor readings and no UV. 
This
driver works out which catalog applies from the payload itself and tells you
about anything it could not place.

*What it can read*
Consoles that upload: Ecowitt, Weather Underground, Ambient Weather,
WeatherFlow, Acurite and LaCrosse, all on one port.
Hardware on a cable or USB: every driver WeeWX ships, and extensions too. 
They
run inside this one on a thread of their own, unchanged, loaded from their 
own
section, so weectl device still works on them. If one stops answering it is
reopened with a backoff and nothing else stops.
Sensors that have to be asked: PurpleAir, Davis AirLink, an Ecowitt gateway 
over
its own API on port 45000 with nothing set on the console, and Home 
Assistant,
which covers very nearly any sensor you can name.
Cheap 433/868/915 MHz sensors, by way of rtl_433. Everything in range turns 
up,
including the neighbours', and nothing is recorded until you say which are
yours.
All of it into one database with one set of reports, which is the other 
reason
this exists.

-- 
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/fb0a6352-a1ce-4238-b195-2d6c9faaf20en%40googlegroups.com.

Reply via email to