Thanks for that, John.

I think we're saying the same thing because a new LOOP request starts with
a wake-up. My intention was to catch the error lower down in the stack,
then restart the loop.

It's good to hear that the strategy works!

-tk

On Sun, May 8, 2022 at 4:30 PM 'John Kline' via weewx-user <
weewx-user@googlegroups.com> wrote:

> Hi Tom,
> 
> You don’t need to restart or try a wake up.  You just need to return from
> genDavisLoopPackets so another request is made for packets.
>
> Below is what I have been running.  You can simplify it as the bad_read
> variable is not necessary since it has NEVER occurred that two bad reads
> happened in a row.  Returning from genDavisLoopPackets on this error always
> results in the next read working (of course, the loop command is reissued
> first since genDavisLoopPackets is called again).
>
> I have never sent this change because I’m running a copy of the vantage
> driver with many other changes.  If the excerpts below don’t make sense,
> you can see the whole driver at:
> https://github.com/chaunceygardiner/weewx-vantagenext
>
> Declare an exception:
> class ShortReadIOError(weewx.WeeWxIOError):
>     """Exception raised when too few bytes read from serial port."""
>
> In read, raise the exception if too few bytes are read:
>         N = len(_buffer)
>         if N != chars:
>             raise ShortReadIOError("Expected %d chars; got %d" % (chars,
> N))
>
> And, in genDavisLoopPackets, catch the ShortReadIOError and simply return:
>                try:
>                     loop_packet = self._get_packet()
>                     log.debug('%s: Loop packet success!' %
> weeutil.weeutil.timestamp_to_string(loop_packet['dateTime']))
>                 except ShortReadIOError as e:
>                     log.info('get_packet: %s. (%d)' % (e, self.pkt_count))
>                     # If already on a bad read, log that fact.
>                     if self.on_bad_read:
>                         log.info('genDavisLoopPackets: repeated bad
> read.')
>                     self.on_bad_read = True
>                     return
>                 except weewx.WeeWxIOError as e:
>                     log.error("LOOP try #%d; error: %s", count + 1, e)
>                     time.sleep(self.port.wait_before_retry)
>                 else:
>                     self.on_bad_read = False
>                     self.pkt_count += 1
>                     yield loop_packet
>                     break
>
> On May 8, 2022, at 2:02 PM, Tom Keffer <tkef...@gmail.com> wrote:
>
> 
> Now that I think about it, there is an experiment I've been meaning to
> try. Right now, the Vantage driver tries 3 times, then gives up and
> restarts the program from the top.
>
> The experiment would be to do something not quite so drastic. Rather than
> restart the program, try a Vantage "wake up" sequence instead.
>
> I've never tried this strategy because there hasn't been a logger
> regularly showing this error that I could test. But it appears yours does.
> I'm tied up with something else, but give me a few days to come up with a
> solution.
>
> In the meantime, I've posted issue #772
> <https://github.com/weewx/weewx/issues/772>.
>
> On Sun, May 8, 2022 at 1:03 PM Dave McCreath <dave.mccre...@gmail.com>
> wrote:
>
>> Spoke too soon.  The error appears to back back up, is this a data logger
>> issue?:
>>
>> May  8 20:55:18 raspberrypi weewx[8172] INFO weewx.restx: AWEKAS:
>> Published record 2022-05-08 20:55:00 BST (1652039700)
>> May  8 20:55:18 raspberrypi weewx[8172] INFO weewx.restx: PWSWeather:
>> Published record 2022-05-08 20:55:00 BST (1652039700)
>> May  8 20:55:18 raspberrypi weewx[8172] INFO weewx.restx:
>> Wunderground-PWS: Published record 2022-05-08 20:55:00 BST (1652039700)
>> May  8 20:55:19 raspberrypi weewx[8172] INFO weewx.cheetahgenerator:
>> Generated 8 files for report SeasonsReport in 1.07 seconds
>> May  8 20:55:21 raspberrypi weewx[8172] INFO weewx.imagegenerator:
>> Generated 30 images for report SeasonsReport in 2.44 seconds
>> May  8 20:55:21 raspberrypi weewx[8172] INFO weewx.reportengine: Copied 0
>> files to /var/www/html/weewx
>> May  8 20:55:28 raspberrypi weewx[8172] ERROR weewx.drivers.vantage: LOOP
>> try #1; error: Expected to read 99 chars; got 0 instead
>> May  8 20:55:32 raspberrypi weewx[8172] ERROR weewx.drivers.vantage: LOOP
>> try #2; error: Expected to read 99 chars; got 0 instead
>> May  8 20:55:36 raspberrypi weewx[8172] ERROR weewx.drivers.vantage: LOOP
>> try #3; error: Expected to read 99 chars; got 0 instead
>> May  8 20:55:40 raspberrypi weewx[8172] ERROR weewx.drivers.vantage: LOOP
>> try #4; error: Expected to read 99 chars; got 0 instead
>> May  8 20:55:40 raspberrypi weewx[8172] ERROR weewx.drivers.vantage: LOOP
>> max tries (4) exceeded.
>> May  8 20:55:40 raspberrypi weewx[8172] INFO weewx.engine: Main loop
>> exiting. Shutting engine down.
>> May  8 20:55:40 raspberrypi weewx[8172] INFO weewx.engine: Shutting down
>> StdReport thread
>> May  8 20:55:40 raspberrypi weewx[8172] CRITICAL __main__: Caught
>> WeeWxIOError: Max tries exceeded while getting LOOP data.
>> May  8 20:55:40 raspberrypi weewx[8172] CRITICAL __main__:     ****
>>  Waiting 60 seconds then retrying...
>> May  8 20:56:40 raspberrypi weewx[8172] INFO __main__: retrying...
>> May  8 20:56:40 raspberrypi weewx[8172] INFO __main__: Using
>> configuration file /etc/weewx/weewx.conf
>> May  8 20:56:40 raspberrypi weewx[8172] INFO __main__: Debug is 0
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: Loading
>> station type Vantage (weewx.drivers.vantage)
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: StdConvert
>> target unit is 0x1
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: Archive will
>> use data binding wx_binding
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: Record
>> generation will be attempted in 'software'
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: Using archive
>> interval of 300 seconds (software record generation)
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.restx:
>> StationRegistry: Station will not be registered: no station_url specified.
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.restx:
>> Wunderground-PWS: Data for station ICAMBSLE2 will be posted
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.restx: PWSWeather:
>> Data for station WISBECH will be posted
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.restx: CWOP: Posting
>> not enabled.
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.restx: WOW: Posting
>> not enabled.
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.restx: AWEKAS: Data
>> will be uploaded for user DMacWx
>> May  8 20:56:40 raspberrypi weewx[8172] INFO __main__: Starting up weewx
>> version 4.5.1
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: Clock error is
>> 0.55 seconds (positive is fast)
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: Using binding
>> 'wx_binding' to database 'weewx.sdb'
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.manager: Starting
>> backfill of daily summaries
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.manager: Daily
>> summaries up to date
>> May  8 20:56:40 raspberrypi weewx[8172] INFO weewx.engine: Starting main
>> packet loop.
>> May  8 21:00:16 raspberrypi weewx[8172] INFO weewx.manager: Added record
>> 2022-05-08 21:00:00 BST (1652040000) to database 'weewx.sdb'
>> May  8 21:00:16 raspberrypi weewx[8172] INFO weewx.manager: Added record
>> 2022-05-08 21:00:00 BST (1652040000) to daily summary in 'weewx.sdb'
>> May  8 21:00:16 raspberrypi weewx[8172] INFO weewx.restx: AWEKAS:
>> Published record 2022-05-08 21:00:00 BST (1652040000)
>> May  8 21:00:16 raspberrypi weewx[8172] INFO weewx.restx: PWSWeather:
>> Published record 2022-05-08 21:00:00 BST (1652040000)
>> May  8 21:00:16 raspberrypi weewx[8172] INFO weewx.restx:
>> Wunderground-PWS: Published record 2022-05-08 21:00:00 BST (1652040000)
>> May  8 21:00:17 raspberrypi weewx[8172] INFO weewx.cheetahgenerator:
>> Generated 8 files for report SeasonsReport in 1.02 seconds
>> May  8 21:00:21 raspberrypi weewx[8172] INFO weewx.imagegenerator:
>> Generated 45 images for report SeasonsReport in 4.30 seconds
>> May  8 21:00:21 raspberrypi weewx[8172] INFO weewx.reportengine: Copied 5
>> files to /var/www/html/weewx
>>
>> Any suggestions welcome.
>>
>> Dave
>>
>> On Sunday, 8 May 2022 at 20:20:45 UTC+1 Dave McCreath wrote:
>>
>>> Just noticed a couple of errors thrown up by WeeWX:
>>>
>>> ERROR weewx.drivers.vantage: LOOP try #1; error: Expected to read 99
>>> chars; got 0 instead.
>>>
>>> Having then read through this forum I then reset the data logger in the
>>> Vantage console (removed all power, pulled the data logger out for 20
>>> seconds, replaced and then powered back up) and all appears to be back up
>>> and running OK.
>>>
>>> My first data logger lasted about 5 years before giving up on me, this
>>> one is about 3 years old, is this a sign that it's on its way out as well?
>>>
>>> They're not cheap!
>>>
>>>
>>> Thanks
>>>
>>>
>>> Dave
>>>
>>>
>>> --
>> 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+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/weewx-user/9244ee2d-e630-4fd1-ae09-96e5815c52f8n%40googlegroups.com
>> <https://groups.google.com/d/msgid/weewx-user/9244ee2d-e630-4fd1-ae09-96e5815c52f8n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> 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+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/CAPq0zEDik39%2BLEOGTnrcMAtW3CorRJqUiGe_96iVFszAm53gbA%40mail.gmail.com
> <https://groups.google.com/d/msgid/weewx-user/CAPq0zEDik39%2BLEOGTnrcMAtW3CorRJqUiGe_96iVFszAm53gbA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> --
> 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+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/D2A80355-C607-40DC-803C-813ACB968BB4%40johnkline.com
> <https://groups.google.com/d/msgid/weewx-user/D2A80355-C607-40DC-803C-813ACB968BB4%40johnkline.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAPq0zECg43Na8Vqf9MsNoP4gwrS4OCcvo7NGk1CmczaeJ_ETdQ%40mail.gmail.com.

Reply via email to