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.
