[weewx-user] Re: weewx division by zero error

2020-03-25 Thread Jeff Ross
3.9.1 had no problem with 30s.  Reset to 60 and no division by error.

Thanks

On Wednesday, March 25, 2020 at 4:52:09 PM UTC-6, Jeff Ross wrote:
>
> Getting the following error on weewx 3.9.2:
>
> 2020-03-25 16:25:39.975468500 127.0.0.1: user.debug: Mar 25 16:25:39 
> weewx[17898]: interceptor: MainThread: raw packet: {'wind_speed': 5.1, 
> 'humidity_in': 30.0, 'temperature_in': 70.3, 'barometer': 25.609, 
> 'windchill': 29.7, 'dewpoint': 28.2, 'humidity_out': 78.0, 'uv': 0.0, 
> 'radiation': 52.85, 'rain': None, 'dateTime': 1585175109, 'pressure': 
> 25.609, 'temperature_out': 34.3, 'wind_dir': 237.0, 'rain_total': 0.331, 
> 'usUnits': 1, 'wind_gust': 5.8}
> 2020-03-25 16:25:39.975558500 127.0.0.1: user.debug: Mar 25 16:25:39 
> weewx[17898]: interceptor: MainThread: mapped packet: {'barometer': 25.609, 
> 'windchill': 29.7, 'dewpoint': 28.2, 'pressure': 25.609, 'outHumidity': 
> 78.0, 'UV': 0.0, 'radiation': 52.85, 'rain': None, 'dateTime': 1585175109, 
> 'windDir': 237.0, 'outTemp': 34.3, 'windSpeed': 5.1, 'inHumidity': 30.0, 
> 'inTemp': 70.3, 'windGust': 5.8, 'usUnits': 1}
> 2020-03-25 16:25:40.089632500 127.0.0.1: user.info: Mar 25 16:25:40 
> weewx[17898]: engine: Main loop exiting. Shutting engine down.
> 2020-03-25 16:25:40.109860500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: restx: Shut down Windy thread.
> 2020-03-25 16:25:40.129892500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: restx: Shut down PWSWeather thread.
> 2020-03-25 16:25:40.149827500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: restx: Shut down StationRegistry thread.
> 2020-03-25 16:25:40.150077500 127.0.0.1: user.info: Mar 25 16:25:40 
> weewx[17898]: interceptor: MainThread: shutting down server thread
> 2020-03-25 16:25:40.150189500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: interceptor: MainThread: stop sniff server
> 2020-03-25 16:25:40.151404500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: engine: Caught unrecoverable exception in engine:
> 2020-03-25 16:25:40.151596500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   integer division or modulo by zero
> 2020-03-25 16:25:40.192081500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   Traceback (most recent call last):
> 2020-03-25 16:25:40.192281500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 894, 
> in main
> 2020-03-25 16:25:40.192286500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   engine.run()
> 2020-03-25 16:25:40.192501500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 191, 
> in run
> 2020-03-25 16:25:40.192506500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   
> self.dispatchEvent(weewx.Event(weewx.NEW_LOOP_PACKET, packet=packet))
> 2020-03-25 16:25:40.193301500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 224, 
> in dispatchEvent
> 2020-03-25 16:25:40.193324500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   callback(event)
> 2020-03-25 16:25:40.193328500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 540, 
> in new_loop_packet
> 2020-03-25 16:25:40.193332500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   self.accumulator = 
> self._new_accumulator(event.packet['dateTime'])
> 2020-03-25 16:25:40.193336500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 650, 
> in _new_accumulator
> 2020-03-25 16:25:40.193345500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   self.archive_interval)
> 2020-03-25 16:25:40.193348500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weeutil/weeutil.py", line 
> 197, in startOfInterval
> 2020-03-25 16:25:40.193353500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   m = int(time_tt.tm_min // interval_m * 
> interval_m)
> 2020-03-25 16:25:40.193361500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   ZeroDivisionError: integer division or modulo by 
> zero
> 2020-03-25 16:25:40.193365500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   Exiting.
>
> If I'm reading the above correctly, the error occurs here in 
> home/weewx/bin/weeutil/weeutil.py:  
> def startOfInterval(time_ts, interval):
> """Find the start time of an interval.
>
> This algorithm assumes the day is divided up into
> intervals of 'interval' length. Given a timestamp, it
> figures out which interval it lies in, returning the start
> time.
>
> time_ts: A timestamp. The start of the interval containing this
> timestamp will be returned.
>
> interval: An interval length in seconds.
>
> Returns: A timestamp with the start of the 

Re: [weewx-user] Re: weewx division by zero error

2020-03-25 Thread Thomas Keffer
WeeWX V3.x does not support archive intervals less than 60 seconds.

WeeWX V4 will.

However, very few weather stations have LOOP packets that come fast enough
to allow that short of an interval.

-tk

On Wed, Mar 25, 2020 at 4:09 PM Jeff Ross  wrote:

> 30 seconds
>
> On Wednesday, March 25, 2020 at 4:52:09 PM UTC-6, Jeff Ross wrote:
>>
>> Getting the following error on weewx 3.9.2:
>>
>> 2020-03-25 16:25:39.975468500 127.0.0.1: user.debug: Mar 25 16:25:39
>> weewx[17898]: interceptor: MainThread: raw packet: {'wind_speed': 5.1,
>> 'humidity_in': 30.0, 'temperature_in': 70.3, 'barometer': 25.609,
>> 'windchill': 29.7, 'dewpoint': 28.2, 'humidity_out': 78.0, 'uv': 0.0,
>> 'radiation': 52.85, 'rain': None, 'dateTime': 1585175109, 'pressure':
>> 25.609, 'temperature_out': 34.3, 'wind_dir': 237.0, 'rain_total': 0.331,
>> 'usUnits': 1, 'wind_gust': 5.8}
>> 2020-03-25 16:25:39.975558500 127.0.0.1: user.debug: Mar 25 16:25:39
>> weewx[17898]: interceptor: MainThread: mapped packet: {'barometer': 25.609,
>> 'windchill': 29.7, 'dewpoint': 28.2, 'pressure': 25.609, 'outHumidity':
>> 78.0, 'UV': 0.0, 'radiation': 52.85, 'rain': None, 'dateTime': 1585175109,
>> 'windDir': 237.0, 'outTemp': 34.3, 'windSpeed': 5.1, 'inHumidity': 30.0,
>> 'inTemp': 70.3, 'windGust': 5.8, 'usUnits': 1}
>> 2020-03-25 16:25:40.089632500 127.0.0.1: user.info: Mar 25 16:25:40
>> weewx[17898]: engine: Main loop exiting. Shutting engine down.
>> 2020-03-25 16:25:40.109860500 127.0.0.1: user.debug: Mar 25 16:25:40
>> weewx[17898]: restx: Shut down Windy thread.
>> 2020-03-25 16:25:40.129892500 127.0.0.1: user.debug: Mar 25 16:25:40
>> weewx[17898]: restx: Shut down PWSWeather thread.
>> 2020-03-25 16:25:40.149827500 127.0.0.1: user.debug: Mar 25 16:25:40
>> weewx[17898]: restx: Shut down StationRegistry thread.
>> 2020-03-25 16:25:40.150077500 127.0.0.1: user.info: Mar 25 16:25:40
>> weewx[17898]: interceptor: MainThread: shutting down server thread
>> 2020-03-25 16:25:40.150189500 127.0.0.1: user.debug: Mar 25 16:25:40
>> weewx[17898]: interceptor: MainThread: stop sniff server
>> 2020-03-25 16:25:40.151404500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: engine: Caught unrecoverable exception in engine:
>> 2020-03-25 16:25:40.151596500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   integer division or modulo by zero
>> 2020-03-25 16:25:40.192081500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   Traceback (most recent call last):
>> 2020-03-25 16:25:40.192281500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 894,
>> in main
>> 2020-03-25 16:25:40.192286500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   engine.run()
>> 2020-03-25 16:25:40.192501500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 191,
>> in run
>> 2020-03-25 16:25:40.192506500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: 
>> self.dispatchEvent(weewx.Event(weewx.NEW_LOOP_PACKET, packet=packet))
>> 2020-03-25 16:25:40.193301500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 224,
>> in dispatchEvent
>> 2020-03-25 16:25:40.193324500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   callback(event)
>> 2020-03-25 16:25:40.193328500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 540,
>> in new_loop_packet
>> 2020-03-25 16:25:40.193332500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   self.accumulator =
>> self._new_accumulator(event.packet['dateTime'])
>> 2020-03-25 16:25:40.193336500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 650,
>> in _new_accumulator
>> 2020-03-25 16:25:40.193345500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   self.archive_interval)
>> 2020-03-25 16:25:40.193348500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]: File "/home/weewx/bin/weeutil/weeutil.py", line
>> 197, in startOfInterval
>> 2020-03-25 16:25:40.193353500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   m = int(time_tt.tm_min // interval_m *
>> interval_m)
>> 2020-03-25 16:25:40.193361500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   ZeroDivisionError: integer division or modulo by
>> zero
>> 2020-03-25 16:25:40.193365500 127.0.0.1: user.crit: Mar 25 16:25:40
>> weewx[17898]:   Exiting.
>>
>> If I'm reading the above correctly, the error occurs here in
>> home/weewx/bin/weeutil/weeutil.py:
>> def startOfInterval(time_ts, interval):
>> """Find the start time of an interval.
>>
>> This algorithm assumes the day is divided up into
>> intervals of 'interval' length. Given a timestamp, it
>> figures out which interval it lies in, returning the start
>> 

[weewx-user] Re: weewx division by zero error

2020-03-25 Thread Jeff Ross
30 seconds

On Wednesday, March 25, 2020 at 4:52:09 PM UTC-6, Jeff Ross wrote:
>
> Getting the following error on weewx 3.9.2:
>
> 2020-03-25 16:25:39.975468500 127.0.0.1: user.debug: Mar 25 16:25:39 
> weewx[17898]: interceptor: MainThread: raw packet: {'wind_speed': 5.1, 
> 'humidity_in': 30.0, 'temperature_in': 70.3, 'barometer': 25.609, 
> 'windchill': 29.7, 'dewpoint': 28.2, 'humidity_out': 78.0, 'uv': 0.0, 
> 'radiation': 52.85, 'rain': None, 'dateTime': 1585175109, 'pressure': 
> 25.609, 'temperature_out': 34.3, 'wind_dir': 237.0, 'rain_total': 0.331, 
> 'usUnits': 1, 'wind_gust': 5.8}
> 2020-03-25 16:25:39.975558500 127.0.0.1: user.debug: Mar 25 16:25:39 
> weewx[17898]: interceptor: MainThread: mapped packet: {'barometer': 25.609, 
> 'windchill': 29.7, 'dewpoint': 28.2, 'pressure': 25.609, 'outHumidity': 
> 78.0, 'UV': 0.0, 'radiation': 52.85, 'rain': None, 'dateTime': 1585175109, 
> 'windDir': 237.0, 'outTemp': 34.3, 'windSpeed': 5.1, 'inHumidity': 30.0, 
> 'inTemp': 70.3, 'windGust': 5.8, 'usUnits': 1}
> 2020-03-25 16:25:40.089632500 127.0.0.1: user.info: Mar 25 16:25:40 
> weewx[17898]: engine: Main loop exiting. Shutting engine down.
> 2020-03-25 16:25:40.109860500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: restx: Shut down Windy thread.
> 2020-03-25 16:25:40.129892500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: restx: Shut down PWSWeather thread.
> 2020-03-25 16:25:40.149827500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: restx: Shut down StationRegistry thread.
> 2020-03-25 16:25:40.150077500 127.0.0.1: user.info: Mar 25 16:25:40 
> weewx[17898]: interceptor: MainThread: shutting down server thread
> 2020-03-25 16:25:40.150189500 127.0.0.1: user.debug: Mar 25 16:25:40 
> weewx[17898]: interceptor: MainThread: stop sniff server
> 2020-03-25 16:25:40.151404500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: engine: Caught unrecoverable exception in engine:
> 2020-03-25 16:25:40.151596500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   integer division or modulo by zero
> 2020-03-25 16:25:40.192081500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   Traceback (most recent call last):
> 2020-03-25 16:25:40.192281500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 894, 
> in main
> 2020-03-25 16:25:40.192286500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   engine.run()
> 2020-03-25 16:25:40.192501500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 191, 
> in run
> 2020-03-25 16:25:40.192506500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   
> self.dispatchEvent(weewx.Event(weewx.NEW_LOOP_PACKET, packet=packet))
> 2020-03-25 16:25:40.193301500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 224, 
> in dispatchEvent
> 2020-03-25 16:25:40.193324500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   callback(event)
> 2020-03-25 16:25:40.193328500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 540, 
> in new_loop_packet
> 2020-03-25 16:25:40.193332500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   self.accumulator = 
> self._new_accumulator(event.packet['dateTime'])
> 2020-03-25 16:25:40.193336500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weewx/engine.py", line 650, 
> in _new_accumulator
> 2020-03-25 16:25:40.193345500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   self.archive_interval)
> 2020-03-25 16:25:40.193348500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]: File "/home/weewx/bin/weeutil/weeutil.py", line 
> 197, in startOfInterval
> 2020-03-25 16:25:40.193353500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   m = int(time_tt.tm_min // interval_m * 
> interval_m)
> 2020-03-25 16:25:40.193361500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   ZeroDivisionError: integer division or modulo by 
> zero
> 2020-03-25 16:25:40.193365500 127.0.0.1: user.crit: Mar 25 16:25:40 
> weewx[17898]:   Exiting.
>
> If I'm reading the above correctly, the error occurs here in 
> home/weewx/bin/weeutil/weeutil.py:  
> def startOfInterval(time_ts, interval):
> """Find the start time of an interval.
>
> This algorithm assumes the day is divided up into
> intervals of 'interval' length. Given a timestamp, it
> figures out which interval it lies in, returning the start
> time.
>
> time_ts: A timestamp. The start of the interval containing this
> timestamp will be returned.
>
> interval: An interval length in seconds.
>
> Returns: A timestamp with the start of the interval.
>
> Examples:
>
> >>> os.environ['TZ'] =