Following up with way more detail than probably any of you want, in case
it's useful to anyone:
summary)
old battery was low
there seems to be some strange console behavior where txBatteryStatus
is sticky, resetting at midnight.
console appears not to communicate with weewx when in setup mode
going into setup mode and staying for a while seems to cause weewx to
exit because after delaying and retrying it still can't connect.
Maybe this should change, but I realize it's a tough call.
archive records read from the logger (vs live) do not have battery
values. Reading the driver, this is obviously well known to the
author because loop packet battery values are inserted into normal
archive records.
0) old battery was at 2.09V. (new 3.23V). After messing with config
mode, console is no longer claiming low, and archive records no longer
say low.
Remember to clean your solar panel once a year; mine was dirty.
1) LOOP packet contents and sticky txBatteryStatus
For no good reason, I save the output of weewx onto files for a while,
so I have the recent LOOP data. Summarizing the data (other than
txBatteryStatus, the LOOP data is unremarkable):
2020-01-19 13:02:30 EST LOOP: 0 (had been 0 since midnight)
2020-01-19 13:02:32 EST LOOP: become 1
2020-01-18 23:59:59 EST LOOP: still 1
2020-01-19 00:00:04 EST LOOP: became 0
2020-01-19 00:02:10 EST LOOP: became 1
2020-01-19 14:34:40 EST LOOP: still 1
Unable to wake up console... sleeping
Unable to wake up console... retrying
[apparently weewx exited]
I had replaced the battery around 1345. But loop packets showed 1 after that.
This is a 1-bit battery low indication in LOOP packets. Almost certainly
this is measured by the control module (Davis says SIM) on the outside
sensor package (Davis says ISS). It is normally 0.
(I wonder how LOOP packets correspond to the on-air bits. Probably if
there is better data in the console it would be sent in LOOP.)
Once txBatteryStatus goes to 1, it seems to stay there the rest of the
(local time) day. Then at midnight, it reverts to 0 (a loop packet with
0), and on many days, it goes back to 1, around 0500 at first, and then
closer and closer to midnight. We had a warm spell on 11th and 12th
(high almost 70F, overnight low in between of 59 F )and on those days
there was no low battery indication. (This makes sense that the battery
would do better then.) Then, the ok times shrank and today, it went
back to 1 after only 2 minutes.
Putting the console into setup (after replacing tx battery) seems to
cause the console to start sending 0 in loop packets.
My theory is once the console gets a txBatteryStatus=low message from
the ISS, it sets the txBatteryStatus loop value to 1 and leaves it
there, and at midnight, it is cleared back to 0.
This is not important to really understand, as almost always once you
get a battery low warning once, you really do need to change it. But it
is curious.
2) NULL battery values in database
I found NULL values for battery values in my database, and these are in
archive records read from logger storage (vs live). From the source
code, archive packets do not have battery values, only loop packets, and
in normal operation the most recent loop values are spliced into the
archive records. On startup and reading saved archive records, this
can't happen. Nothing mysterious in the end -- just something I had no
idea about.
3) setup mode and weewx communication failure
I put the console into setup to see if I could figure out anything
before venturing out with a new battery (I did not). I think this was
around 1300, and logs show:
Jan 19 12:59:27 weewx[1951]: vantage: LOOP try #1; error: Expected to read 99 chars; got 0 instead
Jan 19 12:59:31 weewx[1951]: vantage: LOOP try #2; error: Expected to read 99 chars; got 0 instead
Jan 19 12:59:35 weewx[1951]: vantage: LOOP try #3; error: Expected to read 99 chars; got 0 instead
Jan 19 12:59:39 weewx[1951]: vantage: LOOP try #4; error: Expected to read 99 chars; got 0 instead
Jan 19 12:59:39 weewx[1951]: vantage: LOOP max tries (4) exceeded.
Jan 19 12:59:39 weewx[1951]: engine: Main loop exiting. Shutting engine down.
Jan 19 12:59:39 weewx[1951]: engine: Shutting down StdReport thread
Jan 19 12:59:40 weewx[1951]: engine: Caught WeeWxIOError: Max tries exceeded while getting LOOP data.
Jan 19 12:59:40 weewx[1951]: **** Waiting 60 seconds then retrying...
Jan 19 13:00:40 weewx[1951]: engine: retrying...
Jan 19 13:00:40 weewx[1951]: engine: Using configuration file /usr/weewx/weewx.conf
Jan 19 13:00:40 weewx[1951]: engine: Loading station type Vantage (weewx.drivers.vantage)
and then after coming in from putting in the new battery:
Jan 19 14:34:31 weewx[1951]: vantage: LOOP try #1; error: Expected to read 99 chars; got 0 instead
Jan 19 14:34:35 weewx[1951]: vantage: LOOP try #2; error: Expected to read 99 chars; got 0 instead
Jan 19 14:34:39 weewx[1951]: vantage: LOOP try #3; error: Expected to read 99 chars; got 0 instead
Jan 19 14:34:43 weewx[1951]: vantage: LOOP try #4; error: Expected to read 99 chars; got 0 instead
Jan 19 14:34:43 weewx[1951]: vantage: LOOP max tries (4) exceeded.
Jan 19 14:34:43 weewx[1951]: engine: Main loop exiting. Shutting engine down.
Jan 19 14:34:43 weewx[1951]: engine: Shutting down StdReport thread
Jan 19 14:34:44 weewx[1951]: engine: Caught WeeWxIOError: Max tries exceeded while getting LOOP data.
Jan 19 14:34:44 weewx[1951]: **** Waiting 60 seconds then retrying...
Jan 19 14:35:44 weewx[1951]: engine: retrying...
Jan 19 14:35:45 weewx[1951]: engine: Using configuration file /usr/weewx/weewx.conf
Jan 19 14:35:45 weewx[1951]: engine: Loading station type Vantage (weewx.drivers.vantage)
Jan 19 14:36:02 weewx[1951]: vantage: Unable to wake up console
Jan 19 14:36:02 weewx[1951]: engine: Import of driver failed: Unable to wake up Vantage console (<class 'weewx.WakeupError'>)
Jan 19 14:36:03 weewx[1951]: engine: Unable to load driver: Unable to wake up Vantage console
Jan 19 14:36:03 weewx[1951]: **** Exiting...
It seems that when in setup mode, the logger is not talking to weewx.
Not shocking, but not mentioned at:
http://www.weewx.com/docs/hardware.htm#vantage_notes
although not clear where it fits or if it fits.