So to close this out. I updated the service to capture the data via the NEW_LOOP_PACKET event. Then in the NEW_ARCHIVE_RECORD I only process event data that is in the archive interval. Essentially a ‘poor mans’ accumulator. This has stopped the ‘bleeding’ of data from a previous archive interval into the current interval. I still need to write some more tests, but I am pretty confident this accomplishes what I desire. rich
On Sunday 22 September 2024 at 11:50:07 UTC-4 [email protected] wrote: > As a followup. When I flipped the order that StdEngine fires the events, > such that CHECK_LOOP is before NEW_LOOP this is what I observed. > 1. A new loop packet is generated. > 2. StdEngine fires the CHECK_LOOP event. > 3. StdArchive handles the CHECK_LOOP. > a. The dateTime in the loop packet is greater than the end of the > archive period. > b. StdArchive fires the END_ARCHIVE_PERIOD event. > c. The dateTime is not greater than the end of the archive period + the > archive delay. > 4. MyService handles the END_ARCHIVE_PERIOD. > a. Min values are reset to None, etc. > 5. StdEngine fires a NEW_LOOP event > 6. MyService handles the NEW_LOOP event. > a. It sees that no prior value exists > b. The current value in the loop packet is added to the loop packet as > min_value. > 7. StdArchive handles the NEW_LOOP event. > a. It tries to add it to the accumulator. > b. The accumulator throws OutOfSpan exception > c. StdArchive creates a 'new' accumulator for the next archive period. > d. StdArchive adds the loop packet to the accumulator, > > 8. Eventually a packet with dateTime >= the end of archive period + > archive delay is generated. > a. This causes StdArchive (in CHECK_LOOP) to raise the BREAKLOOP > exception > b. StdEngine handles the exception, raising POST_LOOP; allowing things > like reports to run etc. > > Again, not saying that changing the order that events are fired should be > taken lightly. > rich > > On Sunday 22 September 2024 at 11:28:28 UTC-4 [email protected] wrote: > >> Tom, >> Thanks for the pointer. That is what I am attempting to do. Here is what >> I THINK is my problem. See 4.d below. >> 1. A new loop packet is generated. >> 2. StdEngine fires a NEW_LOOP event >> 3. MyService handles the NEW_LOOP event. >> a. It sees that a prior value is less then the current value in the >> loop packet. >> b. The prior value is added to the loop packet as min_value. >> 4. StdArchive handles the NEW_LOOP event. >> a. It tries to add it to the accumulator. >> b. The accumulator throws OutOfSpan exception >> c. StdArchive creates a 'new' accumulator for the next archive period. >> d. StdArchive adds the loop packet (which has been updated with prior >> loop packet data) to the accumulator, >> 5. StdEngine fires the CHECK_LOOP event. >> 6. StdArchive handles the CHECK_LOOP. >> a. The dateTime in the loop packet is greater than the end of the >> archive period. >> b. StdArchive fires the END_ARCHIVE_PERIOD event. >> c. The dateTime is not greater than the end of the archive period + >> the archive delay. >> 7. MyService handles the END_ARCHIVE_PERIOD. >> a. Min values are reset to None, etc. >> >> >> 8. Eventually a packet with dateTime >= the end of archive period + >> archive delay is generated. >> a. This causes StdArchive (in CHECK_LOOP) to raise the BREAKLOOP >> exception >> b. StdEngine handles the exception, raising POST_LOOP; allowing things >> like reports to run etc. >> >> rich >> >> On Sunday 22 September 2024 at 11:00:00 UTC-4 Tom Keffer wrote: >> >>> Take a look at the Vantage device driver. In addition to a standard >>> device driver, it includes a service, VantageService, that participates in >>> the weewxd event loop. It binds to STARTUP, NEW_LOOP_PACKET, and >>> END_ARCHIVE_PERIOD. The first two are used to reset wind gust values, the >>> last to update the archive record with the max wind seen. >>> >>> I think this is pretty similar to what you're trying to do. >>> >>> -tk >>> >>> On Saturday, September 21, 2024 at 5:01:26 PM UTC-7 [email protected] >>> wrote: >>> >>>> >>>> Goal: Capture the min value and time of lightning strikes. >>>> >>>> I started out binding to the PRE_LOOP and NEW_LOOP_PACKET events. When >>>> the PRE_LOOP event is handled, the min value and time were reset. In the >>>> handling of the NEW_LOOP_PACKET event, the comparison is done and the loop >>>> packet is updated as necessary. I 'quickly' realized that PRE_LOOP and >>>> POST_LOOP events have nothing to do with the archive period. >>>> >>>> The END_ARCHIVE_PERIOD event looked promising. Resetting of the value >>>> and time could be done here. But when I analyze the order of event firing, >>>> this is what I am seeing. >>>> 2024-09-21 11:44:59 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 11:44:59 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726933499 2024-09-21 11:44:59 >>>> 2024-09-21 11:44:59 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 11:44:59 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726933499 2024-09-21 11:44:59 >>>> 2024-09-21 11:45:01 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 11:45:01 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726933502 2024-09-21 11:45:02 >>>> 2024-09-21 11:45:01 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 11:45:01 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726933502 2024-09-21 11:45:02 >>>> 2024-09-21 11:45:01 weewxd[4036220] DEBUG user.observationtime: RMBx: >>>> In end_archive_period >>>> 2024-09-21 11:45:04 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 11:45:04 weewxd[4036220] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726933504 2024-09-21 11:45:04 >>>> This will result in the first packet (1726933502) of the archive period >>>> using the data from the previous archive period. >>>> >>>> Flipping the order in engine.py to the following: >>>> for packet in self.console.genLoopPackets(): >>>> # Allow services to break the loop by throwing >>>> # an exception: >>>> self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet)) >>>> >>>> # Package the packet as an event, then dispatch it. >>>> self.dispatchEvent(weewx.Event(weewx.NEW_LOOP_PACKET, >>>> packet=packet)) >>>> >>>> I would have expected to see the last packet in an archive period not >>>> being processed. But, I was not seeing that. So I added a bit more logging >>>> to try to understand what was going on. This is what I saw. Sorry, it is a >>>> bit long, I made a couple of comments with <---. >>>> >>>> 2024-09-21 19:39:58 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:39:58 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726961999 2024-09-21 19:39:59 >>>> 2024-09-21 19:39:58 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726961999 end_archive_delay_ts: >>>> 1726962035 1726962000 35 >>>> 2024-09-21 19:39:58 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:39:58 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726961999 2024-09-21 19:39:59 >>>> 2024-09-21 19:39:58 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:01 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:01 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962001 2024-09-21 19:40:01 >>>> 2024-09-21 19:40:01 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962001 end_archive_delay_ts: >>>> 1726962035 1726962000 35 >>>> 2024-09-21 19:40:01 weewxd[235236] DEBUG user.observationtime: RMBx: >>>> In end_archive_period <--- END_ARCHIVE_PERIOD event must have fired >>>> 2024-09-21 19:40:01 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:01 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962001 2024-09-21 19:40:01 <--- And the >>>> NEW_LOOP_PACKET has fired afterward >>>> 2024-09-21 19:40:01 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:03 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop <--- processing of even packets continues >>>> 2024-09-21 19:40:03 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962004 2024-09-21 19:40:04 >>>> 2024-09-21 19:40:03 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962004 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:03 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:03 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962004 2024-09-21 19:40:04 >>>> 2024-09-21 19:40:03 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:06 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:06 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962006 2024-09-21 19:40:06 >>>> 2024-09-21 19:40:06 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962006 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:06 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:06 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962006 2024-09-21 19:40:06 >>>> 2024-09-21 19:40:06 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:08 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:08 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962009 2024-09-21 19:40:09 >>>> 2024-09-21 19:40:08 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962009 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:08 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:08 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962009 2024-09-21 19:40:09 >>>> 2024-09-21 19:40:08 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:11 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:11 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962011 2024-09-21 19:40:11 >>>> 2024-09-21 19:40:11 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962011 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:11 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:11 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962011 2024-09-21 19:40:11 >>>> 2024-09-21 19:40:11 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:13 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:13 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962014 2024-09-21 19:40:14 >>>> 2024-09-21 19:40:13 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962014 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:13 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:13 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962014 2024-09-21 19:40:14 >>>> 2024-09-21 19:40:13 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:16 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:16 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962016 2024-09-21 19:40:16 >>>> 2024-09-21 19:40:16 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962016 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:16 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:16 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962016 2024-09-21 19:40:16 >>>> 2024-09-21 19:40:16 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:18 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:18 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962019 2024-09-21 19:40:19 >>>> 2024-09-21 19:40:18 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962019 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:18 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:18 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962019 2024-09-21 19:40:19 >>>> 2024-09-21 19:40:18 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:21 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:21 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962021 2024-09-21 19:40:21 >>>> 2024-09-21 19:40:21 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962021 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:21 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:21 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962021 2024-09-21 19:40:21 >>>> 2024-09-21 19:40:21 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:23 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:23 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962024 2024-09-21 19:40:24 >>>> 2024-09-21 19:40:23 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962024 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:23 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:23 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962024 2024-09-21 19:40:24 >>>> 2024-09-21 19:40:23 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:26 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:26 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962026 2024-09-21 19:40:26 >>>> 2024-09-21 19:40:26 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962026 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:26 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:26 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962026 2024-09-21 19:40:26 >>>> 2024-09-21 19:40:26 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:28 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:28 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962029 2024-09-21 19:40:29 >>>> 2024-09-21 19:40:28 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962029 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:28 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:28 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962029 2024-09-21 19:40:29 >>>> 2024-09-21 19:40:28 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:31 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:31 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962031 2024-09-21 19:40:31 >>>> 2024-09-21 19:40:31 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962031 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:31 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:31 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962031 2024-09-21 19:40:31 >>>> 2024-09-21 19:40:31 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:33 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:33 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962034 2024-09-21 19:40:34 >>>> 2024-09-21 19:40:33 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962034 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:33 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In new_loop_packet >>>> 2024-09-21 19:40:33 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962034 2024-09-21 19:40:34 >>>> 2024-09-21 19:40:33 weewxd[235236] DEBUG weewx.engine: RMBx: in >>>> new_loop_packet (StdArchive) >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962036 2024-09-21 19:40:36 >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> check_loop (StdArchive) packet dateTime: 1726962036 end_archive_delay_ts: >>>> 1726962035 1726962300 35 >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG weewx.engine: RMBx: Raising >>>> BreakLoop 1726962036 1726962035 <--- due to archive_delay, the loop is >>>> 'finally' broken and the archive record can be processed. >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG weewx.engine: RMBx: handling >>>> BreakLoop exception >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG user.observationtime: RMBx: >>>> In post_loop >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG weewx.engine: RMBx: In >>>> post_loop (StdArchive) >>>> 2024-09-21 19:40:36 weewxd[235236] DEBUG user.observationtime: RMBx: >>>> In new_archive_record <--- processing the new archive record >>>> 2024-09-21 19:40:56 weewxd[235236] DEBUG user.observationtime: RMBx: >>>> In pre_loop >>>> 2024-09-21 19:40:56 weewxd[235236] DEBUG user.observationtime: RMB: >>>> In check_loop >>>> 2024-09-21 19:40:56 weewxd[235236] DEBUG user.observationtime: RMB: >>>> packet dateTime: 1726962039 2024-09-21 19:40:39 >>>> >>>> Because of the archive_delay, the last packet goes into the correct >>>> archive record and the END_ARCHIVE_PERIOD event fires before the >>>> NEW_LOOP_PACKET event is fired. >>>> >>>> I realize that changing the order of events firing can have big impact >>>> to existing code, but I am curious about possibly making this change? It >>>> seems to me that this should only impact anyone that wants the >>>> END_ARCHIVE_PERIOD event to fire before the next packet's NEW_LOOP_PACKET >>>> is fired. Not sure if that is important to anyone... Or is there a >>>> better/more WeeWX way of accomplishing what I desire? >>>> If no changes are made to WeeWX, my current thought is to capture the >>>> data via the NEW_LOOP_PACKET and perform the processing via the >>>> NEW_ARCHIVE_RECORD event and only update the archive record with the min >>>> value and time. This would certainly work for me. >>>> >>>> Thanks. rich >>>> >>> -- You received this message because you are subscribed to the Google Groups "weewx-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/d5388801-335e-482e-acc0-2fff84cd3633n%40googlegroups.com.
