I used the alarm.py version that you sent the link to. I attached it along with the syslog. I am not using an SSL connection. Still nothing. I did notice an error when I quit weewx this time.
On Saturday, January 5, 2019 at 12:20:32 PM UTC-6, [email protected] wrote: > > I set up alarm.py per the instructions (I think). I wanted to test an > alarm so I set it for expression= "outTemp > 40". When I run weewx I get > > alarm: Alarm set for expression: 'outTemp > 40.0' > > alarm: Alarm expression "outTemp > 40.0" evaluated True at 2019-01-05 > 11:15:00 CST (1546708500) > > This is what I would expect however nothing else happens. I looked in the > syslog file and there is no mention of the mail being sent or an smtp > error. Also there were no other entries stating the expression was true. > > I waited one hour and again got this but no other entries in syslog. > > Jan 5 12:16:16 raspberrypi weewx[5473]: alarm: Alarm expression "outTemp > > 40.0" evaluated True at 2019-01-05 12:16:00 CST (1546712160) > > > I am using a Raspberry Pi. > > Thanks, > > Tom > > > -- 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]. For more options, visit https://groups.google.com/d/optout.
Jan 5 18:19:18 raspberrypi weewx[7759]: engine: Initializing weewx version 3.8.2 Jan 5 18:19:18 raspberrypi weewx[7759]: engine: Using Python 2.7.13 (default, Sep 26 2018, 18:42:22) #012[GCC 6.3.0 20170516] Jan 5 18:19:18 raspberrypi weewx[7759]: engine: Platform Linux-4.14.79-v7+-armv7l-with-debian-9.6 Jan 5 18:19:18 raspberrypi weewx[7759]: engine: Locale is 'en_US.UTF-8' Jan 5 18:19:18 raspberrypi weewx[7759]: engine: pid file is /var/run/weewx.pid Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Using configuration file /home/weewx/weewx.conf Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Debug is 1 Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Initializing engine Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading station type Vantage (weewx.drivers.vantage) Jan 5 18:19:18 raspberrypi weewx[7748]: Starting weewx weather system: weewx. Jan 5 18:19:18 raspberrypi systemd[1]: Started LSB: weewx weather system. Jan 5 18:19:18 raspberrypi weewx[7763]: vantage: Driver version is 3.0.11 Jan 5 18:19:18 raspberrypi weewx[7763]: vantage: Opened up serial port /dev/ttyUSB0; baud 19200; timeout 4.00 Jan 5 18:19:18 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:19:18 raspberrypi weewx[7763]: vantage: Hardware type is 16 Jan 5 18:19:18 raspberrypi weewx[7763]: vantage: ISS ID is 1 Jan 5 18:19:18 raspberrypi weewx[7763]: vantage: Hardware name: Vantage Pro2 Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service weewx.engine.StdTimeSynch Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service weewx.engine.StdTimeSynch Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service weewx.engine.StdConvert Jan 5 18:19:18 raspberrypi weewx[7763]: engine: StdConvert target unit is 0x1 Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service weewx.engine.StdConvert Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service weewx.engine.StdCalibrate Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service weewx.engine.StdCalibrate Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service weewx.engine.StdQC Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service weewx.engine.StdQC Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service weewx.wxservices.StdWXCalculate Jan 5 18:19:18 raspberrypi weewx[7763]: wxcalculate: The following values will be calculated: barometer=prefer_hardware, windchill=prefer_hardware, dewpoint=prefer_hardware, appTemp=prefer_hardware, rainRate=prefer_hardware, windrun=prefer_hardware, heatindex=prefer_hardware, maxSolarRad=prefer_hardware, humidex=prefer_hardware, pressure=prefer_hardware, inDewpoint=prefer_hardware, ET=prefer_hardware, altimeter=prefer_hardware, cloudbase=prefer_hardware Jan 5 18:19:18 raspberrypi weewx[7763]: wxcalculate: The following algorithms will be used for calculations: altimeter=aaNOAA, maxSolarRad=RS Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service weewx.wxservices.StdWXCalculate Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service weewx.engine.StdArchive Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Archive will use data binding wx_binding Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Record generation will be attempted in 'hardware' Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Using archive interval of 60 seconds (specified by hardware) Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Use LOOP data in hi/low calculations: 1 Jan 5 18:19:18 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Using binding 'wx_binding' to database 'weewx.sdb' Jan 5 18:19:18 raspberrypi weewx[7763]: manager: Starting backfill of daily summaries Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service weewx.engine.StdArchive Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.ZambrettiForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: last forecast issued 2019-01-05 18:05:00 CST (1546733100), requested 2019-01-05 18:05:00 CST (1546733100) Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: interval=600 max_age=604800 winddir_period=1800 pressure_period=10800 hemisphere=NORTH lower_pressure=950.0 upper_pressure=1050.0 Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.ZambrettiForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.NWSForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: NWS: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: NWS: last forecast issued 2019-01-05 13:56:00 CST (1546718160), requested 2019-01-05 17:07:17 CST (1546729637) Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: NWS: interval=10800 max_age=604800 lid=ALZ008 foid=HUN Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.NWSForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.WUForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: WU: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: WU: last forecast issued 2019-01-05 17:14:16 CST (1546730056), requested 2019-01-05 17:14:16 CST (1546730056) Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: WU: interval=10800 max_age=604800 api_key=XXXXXXXXXXXX66e7 location=34.244,-86.235 fc=hourly10day Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.WUForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.OWMForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: OWM: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: OWM: API key (api_key) is not specified Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: OWM: forecast will not be run Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.OWMForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.UKMOForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: UKMO: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: UKMO: API key (api_key) is not specified Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: UKMO: forecast will not be run Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.UKMOForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.AerisForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: Aeris: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: Aeris: client identifier (client_id) is not specified Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: Aeris: client secret (client_secret) is not specified Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: Aeris: forecast will not be run Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.AerisForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.WWOForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: WWO: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: WWO: API key (api_key) is not specified Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: WWO: forecast will not be run Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.WWOForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service user.forecast.XTideForecast Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: XTide: forecast version 3.2.19 Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: XTide: location (location) has not been specified Jan 5 18:19:18 raspberrypi weewx[7763]: forecast: MainThread: XTide: forecast will not be run Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service user.forecast.XTideForecast Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Loading service weewx.restx.StdStationRegistry Jan 5 18:19:18 raspberrypi weewx[7763]: restx: StationRegistry: Station will be registered. Jan 5 18:19:18 raspberrypi weewx[7763]: engine: Finished loading service weewx.restx.StdStationRegistry Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service weewx.restx.StdWunderground Jan 5 18:19:19 raspberrypi weewx[7763]: restx: Wunderground-RF: Data for station KALALBER13 will be posted Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service weewx.restx.StdWunderground Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service weewx.restx.StdPWSweather Jan 5 18:19:19 raspberrypi weewx[7763]: restx: PWSweather: Posting not enabled. Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service weewx.restx.StdPWSweather Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service weewx.restx.StdCWOP Jan 5 18:19:19 raspberrypi weewx[7763]: restx: CWOP: Data for station KQ5S-13 will be posted Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service weewx.restx.StdCWOP Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service weewx.restx.StdWOW Jan 5 18:19:19 raspberrypi weewx[7763]: restx: WOW: Posting not enabled. Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service weewx.restx.StdWOW Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service weewx.restx.StdAWEKAS Jan 5 18:19:19 raspberrypi weewx[7763]: restx: AWEKAS: Posting not enabled. Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service weewx.restx.StdAWEKAS Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service user.meteotemplate.Meteotemplate Jan 5 18:19:19 raspberrypi weewx[7763]: restx: Meteotemplate: service version is 0.9 Jan 5 18:19:19 raspberrypi weewx[7763]: restx: Meteotemplate: Data will be uploaded to http://www.kq5s.com/template/api.php Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service user.meteotemplate.Meteotemplate Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service weewx.engine.StdPrint Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service weewx.engine.StdPrint Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service weewx.engine.StdReport Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service weewx.engine.StdReport Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service user.lowBattery.BatteryAlarm Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:19:19 raspberrypi weewx[7763]: lowBattery: LowBattery alarm enabled. Count threshold is 10 Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service user.lowBattery.BatteryAlarm Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Loading service user.alarm.MyAlarm Jan 5 18:19:19 raspberrypi weewx[7763]: alarm: Alarm set for expression: 'outTemp > 40.0' Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Finished loading service user.alarm.MyAlarm Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Starting up weewx version 3.8.2 Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Clock error is -0.17 seconds (positive is fast) Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Getting archive packets since 2019-01-05 18:17:00 CST (1546733820) Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Retrieving 1 page(s); starting index= 0 Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:18:00 CST (1546733880) to database 'weewx.sdb' Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:18:00 CST (1546733880) to daily summary in 'weewx.sdb' Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: starting thread Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: generating forecast for 2019-01-05 09:00:00 CST (1546700400) Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: MainThread: NWS: not yet time to do the forecast Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: using winddir from 2019-01-05 08:30:00 CST (1546698600) to 2019-01-05 09:00:00 CST (1546700400) Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: MainThread: WU: not yet time to do the forecast Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: using pressure from 2019-01-05 06:00:00 CST (1546689600) to 2019-01-05 09:00:00 CST (1546700400) Jan 5 18:19:19 raspberrypi weewx[7763]: alarm: Alarm expression "outTemp > 40.0" evaluated True at 2019-01-05 18:18:00 CST (1546733880) Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: units=1 winddir=291.774193548 pressure=30.1179392265 first_p=30.072 last_p=30.155 Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: pressure=1019.91032765 month=0 winddir=12 trend=0.936900723939 north=True Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:19:00 CST (1546733940) to database 'weewx.sdb' Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: code is C Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: generated 1 forecast record Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: saving 1 forecast records Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:18:00 CST (1546733880) to database 'forecast.sdb' Jan 5 18:19:19 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:19:00 CST (1546733940) to daily summary in 'weewx.sdb' Jan 5 18:19:19 raspberrypi weewx[7763]: restx: CWOP: Connected to server cwop.aprs.net:14580 Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: saved 1 forecast records Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: deleting forecasts prior to 1546129159 Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: deleted forecasts prior to 1546129159 Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: ZambrettiThread: Zambretti: terminating thread Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: not yet time to do the forecast Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: MainThread: NWS: not yet time to do the forecast Jan 5 18:19:19 raspberrypi weewx[7763]: forecast: MainThread: WU: not yet time to do the forecast Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: DMPAFT complete: page timestamp 2019-01-03 23:39:00 CST (1546580340) less than final timestamp 2019-01-05 18:19:00 CST (1546733940) Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Catch up complete. Jan 5 18:19:19 raspberrypi weewx[7763]: engine: Starting main packet loop. Jan 5 18:19:19 raspberrypi weewx[7763]: restx: CWOP: Published record 2019-01-05 18:18:00 CST (1546733880) Jan 5 18:19:19 raspberrypi weewx[7763]: restx: CWOP: wait interval (60 < 600) has not passed for record 2019-01-05 18:19:00 CST (1546733940) Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Requesting 200 LOOP packets. Jan 5 18:19:19 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:19:19 raspberrypi weewx[7763]: restx: StationRegistry: Published record 2019-01-05 18:18:00 CST (1546733880) Jan 5 18:19:19 raspberrypi weewx[7763]: restx: StationRegistry: wait interval (60 < 604800) has not passed for record 2019-01-05 18:19:00 CST (1546733940) Jan 5 18:19:19 raspberrypi weewx[7763]: restx: Meteotemplate: Published record 2019-01-05 18:18:00 CST (1546733880) Jan 5 18:19:20 raspberrypi weewx[7763]: restx: Meteotemplate: Published record 2019-01-05 18:19:00 CST (1546733940) Jan 5 18:20:14 raspberrypi weewx[7763]: vantage: Getting archive packets since 2019-01-05 18:19:00 CST (1546733940) Jan 5 18:20:14 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:20:14 raspberrypi weewx[7763]: vantage: Retrieving 1 page(s); starting index= 2 Jan 5 18:20:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:20:00 CST (1546734000) to database 'weewx.sdb' Jan 5 18:20:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:20:00 CST (1546734000) to daily summary in 'weewx.sdb' Jan 5 18:20:14 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: not yet time to do the forecast Jan 5 18:20:14 raspberrypi weewx[7763]: forecast: MainThread: NWS: not yet time to do the forecast Jan 5 18:20:14 raspberrypi weewx[7763]: forecast: MainThread: WU: not yet time to do the forecast Jan 5 18:20:14 raspberrypi weewx[7763]: restx: StationRegistry: wait interval (120 < 604800) has not passed for record 2019-01-05 18:20:00 CST (1546734000) Jan 5 18:20:14 raspberrypi weewx[7763]: restx: CWOP: wait interval (120 < 600) has not passed for record 2019-01-05 18:20:00 CST (1546734000) Jan 5 18:20:14 raspberrypi weewx[7763]: vantage: DMPAFT complete: page timestamp 2019-01-03 23:40:00 CST (1546580400) less than final timestamp 2019-01-05 18:20:00 CST (1546734000) Jan 5 18:20:14 raspberrypi weewx[7763]: vantage: Catch up complete. Jan 5 18:20:14 raspberrypi weewx[7763]: reportengine: Running reports for latest time in the database. Jan 5 18:20:14 raspberrypi weewx[7763]: vantage: Requesting 200 LOOP packets. Jan 5 18:20:14 raspberrypi weewx[7763]: reportengine: Running report StandardReport Jan 5 18:20:15 raspberrypi weewx[7763]: reportengine: Found configuration file /home/weewx/skins/Standard/skin.conf for report StandardReport Jan 5 18:20:15 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:20:15 raspberrypi weewx[7763]: cheetahgenerator: using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'user.forecast.ForecastVariables', 'user.xstats.ExtendedStatistics'] Jan 5 18:20:15 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:20:16 raspberrypi weewx[7763]: restx: Meteotemplate: Published record 2019-01-05 18:20:00 CST (1546734000) Jan 5 18:20:18 raspberrypi weewx[7763]: cheetahgenerator: Generated 14 files for report StandardReport in 3.54 seconds Jan 5 18:20:18 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:20:20 raspberrypi weewx[7763]: imagegenerator: Generated 11 images for StandardReport in 1.74 seconds Jan 5 18:20:20 raspberrypi weewx[7763]: copygenerator: copied 96 files to /home/weewx/public_html Jan 5 18:20:20 raspberrypi weewx[7763]: reportengine: Running report SteelSeries Jan 5 18:20:20 raspberrypi weewx[7763]: reportengine: Found configuration file /home/weewx/skins/ss/skin.conf for report SteelSeries Jan 5 18:20:20 raspberrypi weewx[7763]: copygenerator: copied 6 files to /home/weewx/public_html/ss Jan 5 18:20:20 raspberrypi weewx[7763]: cheetahgenerator: using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'user.forecast.ForecastVariables'] Jan 5 18:20:20 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:20:21 raspberrypi weewx[7763]: cheetahgenerator: Generated 2 files for report SteelSeries in 0.87 seconds Jan 5 18:20:21 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:20:22 raspberrypi weewx[7763]: imagegenerator: Generated 11 images for SteelSeries in 1.36 seconds Jan 5 18:20:22 raspberrypi weewx[7763]: reportengine: Running report forecast Jan 5 18:20:22 raspberrypi weewx[7763]: reportengine: Found configuration file /home/weewx/skins/forecast/skin.conf for report forecast Jan 5 18:20:22 raspberrypi weewx[7763]: cheetahgenerator: using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'user.forecast.ForecastVariables'] Jan 5 18:20:22 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:20:56 raspberrypi weewx[7763]: cheetahgenerator: Generated 12 files for report forecast in 33.67 seconds Jan 5 18:20:56 raspberrypi weewx[7763]: copygenerator: copied 87 files to /home/weewx/public_html/forecast Jan 5 18:20:56 raspberrypi weewx[7763]: reportengine: Running report xstats Jan 5 18:20:56 raspberrypi weewx[7763]: reportengine: Found configuration file /home/weewx/skins/xstats/skin.conf for report xstats Jan 5 18:20:56 raspberrypi weewx[7763]: cheetahgenerator: using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'user.xstats.ExtendedStatistics'] Jan 5 18:20:56 raspberrypi weewx[7763]: manager: Daily summary version is 2.0 Jan 5 18:20:56 raspberrypi weewx[7763]: cheetahgenerator: Generated 1 files for report xstats in 0.13 seconds Jan 5 18:20:56 raspberrypi weewx[7763]: reportengine: Running report FTP Jan 5 18:20:56 raspberrypi weewx[7763]: reportengine: Found configuration file /home/weewx/skins/Ftp/skin.conf for report FTP Jan 5 18:20:56 raspberrypi weewx[7763]: ftpupload: Attempting connection to ftp.kq5s.com Jan 5 18:20:56 raspberrypi weewx[7763]: ftpupload: Connected to ftp.kq5s.com Jan 5 18:20:56 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/favicon.ico Jan 5 18:20:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/index.html Jan 5 18:20:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/mobile.css Jan 5 18:20:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/dayrain.png Jan 5 18:20:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/daywinddir.png Jan 5 18:20:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/daywindvec.png Jan 5 18:20:58 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/daywind.png Jan 5 18:20:58 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/daytempdew.png Jan 5 18:20:58 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/dayinside.png Jan 5 18:20:58 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/mobile.html Jan 5 18:20:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/week.html Jan 5 18:20:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/daybarometer.png Jan 5 18:20:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/daygarage.png Jan 5 18:20:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/month.html Jan 5 18:20:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/daytempchill.png Jan 5 18:21:00 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/dayrx.png Jan 5 18:21:00 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/dayhumidity.png Jan 5 18:21:00 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/year.html Jan 5 18:21:00 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/weewx.css Jan 5 18:21:00 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/zambretti.html Jan 5 18:21:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/compact.html Jan 5 18:21:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/index.html Jan 5 18:21:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/single-table.html Jan 5 18:21:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/forecast_iconic.css Jan 5 18:21:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/multiple-strips.html Jan 5 18:21:02 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/tides.html Jan 5 18:21:02 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/forecast_compact.css Jan 5 18:21:02 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/forecast_strip.css Jan 5 18:21:03 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/multiple-tables.html Jan 5 18:21:03 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/single-strip-vertical.html Jan 5 18:21:03 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/forecast_table.css Jan 5 18:21:03 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/iconic.html Jan 5 18:21:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/iconic-horizontal.html Jan 5 18:21:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/forecast.css Jan 5 18:21:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/forecast-periods.html Jan 5 18:21:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/single-strip.html Jan 5 18:21:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/NE.png Jan 5 18:21:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/sprinkles.png Jan 5 18:21:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tESE.png Jan 5 18:21:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/moon.png Jan 5 18:21:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/sunset.png Jan 5 18:21:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/K.png Jan 5 18:21:06 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/BK.png Jan 5 18:21:06 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/sleet.png Jan 5 18:21:06 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tENE.png Jan 5 18:21:06 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/pop.png Jan 5 18:21:06 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/snowflake.png Jan 5 18:21:06 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tE.png Jan 5 18:21:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/thermometer-blue.png Jan 5 18:21:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tSSW.png Jan 5 18:21:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/rain.png Jan 5 18:21:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/F.png Jan 5 18:21:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tSSE.png Jan 5 18:21:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/B2n.png Jan 5 18:21:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tWNW.png Jan 5 18:21:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/BD.png Jan 5 18:21:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tW.png Jan 5 18:21:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/sunriseset.png Jan 5 18:21:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/snow.png Jan 5 18:21:09 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/W.png Jan 5 18:21:09 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/triangle-down.png Jan 5 18:21:09 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/B1n.png Jan 5 18:21:10 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/PF+.png Jan 5 18:21:10 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tS.png Jan 5 18:21:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/rainshwrs.png Jan 5 18:21:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tNNW.png Jan 5 18:21:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/flag.png Jan 5 18:21:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/BS.png Jan 5 18:21:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tstms.png Jan 5 18:21:12 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/thermometer.png Jan 5 18:21:12 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/FWn.png Jan 5 18:21:12 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/moonrise.png Jan 5 18:21:12 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tNW.png Jan 5 18:21:12 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/sunrise.png Jan 5 18:21:12 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/moonriseset.png Jan 5 18:21:13 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/E.png Jan 5 18:21:13 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/NW.png Jan 5 18:21:13 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tN.png Jan 5 18:21:13 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/SW.png Jan 5 18:21:13 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/H.png Jan 5 18:21:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/flurries.png Jan 5 18:21:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/raindrop.png Jan 5 18:21:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/OV.png Jan 5 18:21:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/thermometer-red.png Jan 5 18:21:14 raspberrypi weewx[7763]: vantage: Getting archive packets since 2019-01-05 18:20:00 CST (1546734000) Jan 5 18:21:14 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:21:14 raspberrypi weewx[7763]: vantage: Retrieving 1 page(s); starting index= 3 Jan 5 18:21:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/N.png Jan 5 18:21:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:21:00 CST (1546734060) to database 'weewx.sdb' Jan 5 18:21:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:21:00 CST (1546734060) to daily summary in 'weewx.sdb' Jan 5 18:21:14 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: not yet time to do the forecast Jan 5 18:21:14 raspberrypi weewx[7763]: forecast: MainThread: NWS: not yet time to do the forecast Jan 5 18:21:14 raspberrypi weewx[7763]: forecast: MainThread: WU: not yet time to do the forecast Jan 5 18:21:14 raspberrypi weewx[7763]: restx: CWOP: wait interval (180 < 600) has not passed for record 2019-01-05 18:21:00 CST (1546734060) Jan 5 18:21:14 raspberrypi weewx[7763]: vantage: DMPAFT complete: page timestamp 2019-01-03 23:41:00 CST (1546580460) less than final timestamp 2019-01-05 18:21:00 CST (1546734060) Jan 5 18:21:14 raspberrypi weewx[7763]: restx: StationRegistry: wait interval (180 < 604800) has not passed for record 2019-01-05 18:21:00 CST (1546734060) Jan 5 18:21:14 raspberrypi weewx[7763]: vantage: Catch up complete. Jan 5 18:21:14 raspberrypi weewx[7763]: engine: Launch of report thread aborted: existing report thread still running Jan 5 18:21:14 raspberrypi weewx[7763]: vantage: Requesting 200 LOOP packets. Jan 5 18:21:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/sunmoon.png Jan 5 18:21:14 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:21:15 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/water.png Jan 5 18:21:15 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/SC.png Jan 5 18:21:15 raspberrypi weewx[7763]: restx: Meteotemplate: Published record 2019-01-05 18:21:00 CST (1546734060) Jan 5 18:21:15 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tNNE.png Jan 5 18:21:15 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/thermometer-dewpoint.png Jan 5 18:21:15 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/B2.png Jan 5 18:21:16 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/CLn.png Jan 5 18:21:16 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/moonphase.png Jan 5 18:21:16 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/blizzard.png Jan 5 18:21:16 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/PF.png Jan 5 18:21:16 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/SE.png Jan 5 18:21:17 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tNE.png Jan 5 18:21:17 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/AF.png Jan 5 18:21:18 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tSW.png Jan 5 18:21:19 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/BKn.png Jan 5 18:21:20 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/SCn.png Jan 5 18:21:22 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tWSW.png Jan 5 18:21:23 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/drizzle.png Jan 5 18:21:24 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/triangle-right.png Jan 5 18:21:26 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/B1.png Jan 5 18:21:27 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/snowshwrs.png Jan 5 18:21:28 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/CL.png Jan 5 18:21:29 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/F+.png Jan 5 18:21:31 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/OVn.png Jan 5 18:21:32 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/flag-yellow.png Jan 5 18:21:33 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/S.png Jan 5 18:21:34 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/frzngdrzl.png Jan 5 18:21:35 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/moonset.png Jan 5 18:21:37 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/tSE.png Jan 5 18:21:38 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/raintorrent.png Jan 5 18:21:39 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/FW.png Jan 5 18:21:40 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/forecast/icons/sun.png Jan 5 18:21:41 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/xstats/index.html Jan 5 18:21:43 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/wind.html Jan 5 18:21:44 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/index.html Jan 5 18:21:45 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/custom.js Jan 5 18:21:47 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/radar.html Jan 5 18:21:48 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/rain.html Jan 5 18:21:49 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/barometer.html Jan 5 18:21:50 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/temp_outside.html Jan 5 18:21:51 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/icons/icon_ipad_x2.png Jan 5 18:21:53 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/icons/icon_ipad_x1.png Jan 5 18:21:54 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/icons/icon_iphone_x2.png Jan 5 18:21:55 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/smartphone/icons/icon_iphone_x1.png Jan 5 18:21:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/NE.png Jan 5 18:21:58 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/sprinkles.png Jan 5 18:21:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tESE.png Jan 5 18:22:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/moon.png Jan 5 18:22:02 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/sunset.png Jan 5 18:22:03 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/K.png Jan 5 18:22:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/BK.png Jan 5 18:22:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/sleet.png Jan 5 18:22:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tENE.png Jan 5 18:22:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/pop.png Jan 5 18:22:10 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/snowflake.png Jan 5 18:22:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tE.png Jan 5 18:22:12 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/thermometer-blue.png Jan 5 18:22:13 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tSSW.png Jan 5 18:22:14 raspberrypi weewx[7763]: vantage: Getting archive packets since 2019-01-05 18:21:00 CST (1546734060) Jan 5 18:22:14 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:22:14 raspberrypi weewx[7763]: vantage: Retrieving 1 page(s); starting index= 4 Jan 5 18:22:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/rain.png Jan 5 18:22:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:22:00 CST (1546734120) to database 'weewx.sdb' Jan 5 18:22:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:22:00 CST (1546734120) to daily summary in 'weewx.sdb' Jan 5 18:22:15 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: not yet time to do the forecast Jan 5 18:22:15 raspberrypi weewx[7763]: forecast: MainThread: NWS: not yet time to do the forecast Jan 5 18:22:15 raspberrypi weewx[7763]: forecast: MainThread: WU: not yet time to do the forecast Jan 5 18:22:15 raspberrypi weewx[7763]: restx: StationRegistry: wait interval (240 < 604800) has not passed for record 2019-01-05 18:22:00 CST (1546734120) Jan 5 18:22:15 raspberrypi weewx[7763]: restx: CWOP: wait interval (240 < 600) has not passed for record 2019-01-05 18:22:00 CST (1546734120) Jan 5 18:22:15 raspberrypi weewx[7763]: engine: Launch of report thread aborted: existing report thread still running Jan 5 18:22:15 raspberrypi weewx[7763]: vantage: Requesting 200 LOOP packets. Jan 5 18:22:15 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:22:16 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/F.png Jan 5 18:22:16 raspberrypi weewx[7763]: restx: Meteotemplate: Published record 2019-01-05 18:22:00 CST (1546734120) Jan 5 18:22:17 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tSSE.png Jan 5 18:22:18 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/B2n.png Jan 5 18:22:19 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tWNW.png Jan 5 18:22:21 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/BD.png Jan 5 18:22:22 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tW.png Jan 5 18:22:23 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/sunriseset.png Jan 5 18:22:24 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/snow.png Jan 5 18:22:25 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/W.png Jan 5 18:22:27 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/triangle-down.png Jan 5 18:22:28 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/B1n.png Jan 5 18:22:29 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/PF+.png Jan 5 18:22:30 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tS.png Jan 5 18:22:31 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/rainshwrs.png Jan 5 18:22:33 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tNNW.png Jan 5 18:22:34 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/flag.png Jan 5 18:22:35 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/BS.png Jan 5 18:22:36 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tstms.png Jan 5 18:22:37 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/thermometer.png Jan 5 18:22:39 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/FWn.png Jan 5 18:22:40 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/moonrise.png Jan 5 18:22:41 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tNW.png Jan 5 18:22:42 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/sunrise.png Jan 5 18:22:43 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/moonriseset.png Jan 5 18:22:45 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/E.png Jan 5 18:22:46 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/NW.png Jan 5 18:22:47 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tN.png Jan 5 18:22:48 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/SW.png Jan 5 18:22:49 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/H.png Jan 5 18:22:51 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/flurries.png Jan 5 18:22:52 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/raindrop.png Jan 5 18:22:53 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/OV.png Jan 5 18:22:54 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/thermometer-red.png Jan 5 18:22:55 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/N.png Jan 5 18:22:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/sunmoon.png Jan 5 18:22:58 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/water.png Jan 5 18:22:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/SC.png Jan 5 18:23:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tNNE.png Jan 5 18:23:02 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/thermometer-dewpoint.png Jan 5 18:23:03 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/B2.png Jan 5 18:23:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/CLn.png Jan 5 18:23:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/moonphase.png Jan 5 18:23:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/blizzard.png Jan 5 18:23:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/PF.png Jan 5 18:23:09 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/SE.png Jan 5 18:23:10 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tNE.png Jan 5 18:23:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/AF.png Jan 5 18:23:13 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tSW.png Jan 5 18:23:14 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/BKn.png Jan 5 18:23:14 raspberrypi weewx[7763]: vantage: Getting archive packets since 2019-01-05 18:22:00 CST (1546734120) Jan 5 18:23:14 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:23:14 raspberrypi weewx[7763]: vantage: Retrieving 1 page(s); starting index= 0 Jan 5 18:23:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:23:00 CST (1546734180) to database 'weewx.sdb' Jan 5 18:23:14 raspberrypi weewx[7763]: manager: Added record 2019-01-05 18:23:00 CST (1546734180) to daily summary in 'weewx.sdb' Jan 5 18:23:14 raspberrypi weewx[7763]: forecast: MainThread: Zambretti: not yet time to do the forecast Jan 5 18:23:14 raspberrypi weewx[7763]: forecast: MainThread: NWS: not yet time to do the forecast Jan 5 18:23:14 raspberrypi weewx[7763]: forecast: MainThread: WU: not yet time to do the forecast Jan 5 18:23:14 raspberrypi weewx[7763]: restx: StationRegistry: wait interval (300 < 604800) has not passed for record 2019-01-05 18:23:00 CST (1546734180) Jan 5 18:23:14 raspberrypi weewx[7763]: vantage: DMPAFT complete: page timestamp 2019-01-03 23:43:00 CST (1546580580) less than final timestamp 2019-01-05 18:23:00 CST (1546734180) Jan 5 18:23:14 raspberrypi weewx[7763]: vantage: Catch up complete. Jan 5 18:23:14 raspberrypi weewx[7763]: engine: Launch of report thread aborted: existing report thread still running Jan 5 18:23:14 raspberrypi weewx[7763]: vantage: Requesting 200 LOOP packets. Jan 5 18:23:14 raspberrypi weewx[7763]: restx: CWOP: wait interval (300 < 600) has not passed for record 2019-01-05 18:23:00 CST (1546734180) Jan 5 18:23:14 raspberrypi weewx[7763]: vantage: Gentle wake up of console successful Jan 5 18:23:15 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/SCn.png Jan 5 18:23:16 raspberrypi weewx[7763]: restx: Meteotemplate: Published record 2019-01-05 18:23:00 CST (1546734180) Jan 5 18:23:16 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tWSW.png Jan 5 18:23:17 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/drizzle.png Jan 5 18:23:19 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/triangle-right.png Jan 5 18:23:20 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/B1.png Jan 5 18:23:21 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/snowshwrs.png Jan 5 18:23:22 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/CL.png Jan 5 18:23:24 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/F+.png Jan 5 18:23:25 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/OVn.png Jan 5 18:23:26 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/flag-yellow.png Jan 5 18:23:27 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/S.png Jan 5 18:23:29 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/frzngdrzl.png Jan 5 18:23:30 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/moonset.png Jan 5 18:23:31 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/tSE.png Jan 5 18:23:32 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/raintorrent.png Jan 5 18:23:33 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/FW.png Jan 5 18:23:35 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/icons/sun.png Jan 5 18:23:36 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/NOAA/NOAA-2019.txt Jan 5 18:23:37 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/NOAA/NOAA-2019-01.txt Jan 5 18:23:38 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/backgrounds/flower.jpg Jan 5 18:23:40 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/backgrounds/butterfly.jpg Jan 5 18:23:41 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/backgrounds/leaf.jpg Jan 5 18:23:42 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/backgrounds/drops.gif Jan 5 18:23:43 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/backgrounds/night.gif Jan 5 18:23:44 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/backgrounds/band.gif Jan 5 18:23:46 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/backgrounds/solidblack.gif Jan 5 18:23:47 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/RSS/weewx_rss.xml Jan 5 18:23:48 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/dayradiation.png Jan 5 18:23:49 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/dayrainrate.png Jan 5 18:23:51 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/index.html Jan 5 18:23:52 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/dayrain.png Jan 5 18:23:53 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/gauge-data.txt Jan 5 18:23:54 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/dayinouthum.png Jan 5 18:23:55 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/daywinddir.png Jan 5 18:23:57 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/daywindvec.png Jan 5 18:23:58 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/daywind.png Jan 5 18:23:59 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/dayuv.png Jan 5 18:24:00 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/dayouttemphum.png Jan 5 18:24:01 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/daybarometer.png Jan 5 18:24:03 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/dayinouttemp.png Jan 5 18:24:04 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/scripts/RGraph.rose.min.js Jan 5 18:24:05 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/scripts/RGraph.common.core.min.js Jan 5 18:24:07 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/scripts/language.min.js Jan 5 18:24:08 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/scripts/steelseries_tween.min.js Jan 5 18:24:10 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/scripts/gauges.js Jan 5 18:24:11 raspberrypi weewx[7763]: ftpupload: Uploaded file public_html/weewx/ss/css/gauges-ss.css Jan 5 18:24:11 raspberrypi weewx[7763]: ftpgenerator: ftp'd 239 files in 195.24 seconds Jan 5 18:24:11 raspberrypi weewx[7763]: reportengine: Running report RSYNC Jan 5 18:24:11 raspberrypi weewx[7763]: reportengine: Found configuration file /home/weewx/skins/Rsync/skin.conf for report RSYNC Jan 5 18:24:11 raspberrypi weewx[7763]: rsyncgenerator: rsync upload not requested. Skipped. Jan 5 18:24:14 raspberrypi systemd[1]: Stopping LSB: weewx weather system... Jan 5 18:24:14 raspberrypi weewx[7763]: engine: Received signal TERM (15). Jan 5 18:24:14 raspberrypi weewx[7763]: engine: Main loop exiting. Shutting engine down. Jan 5 18:24:14 raspberrypi weewx[7763]: engine: Shutting down StdReport thread Jan 5 18:24:14 raspberrypi weewx[7763]: engine: StdReport thread has been terminated Jan 5 18:24:14 raspberrypi weewx[7763]: restx: Shut down CWOP thread. Jan 5 18:24:14 raspberrypi weewx[7763]: restx: Shut down Wunderground-RF thread. Jan 5 18:24:14 raspberrypi weewx[7763]: restx: Shut down StationRegistry thread. Jan 5 18:24:14 raspberrypi weewx[7763]: engine: Terminating weewx version 3.8.2 Jan 5 18:24:14 raspberrypi weewx[7763]: **** Traceback (most recent call last): Jan 5 18:24:14 raspberrypi weewx[7763]: **** File "/home/weewx/bin/weewx/engine.py", line 877, in main Jan 5 18:24:14 raspberrypi weewx[7763]: **** engine.run() Jan 5 18:24:14 raspberrypi weewx[7763]: **** File "/home/weewx/bin/weewx/engine.py", line 188, in run Jan 5 18:24:14 raspberrypi weewx[7763]: **** for packet in self.console.genLoopPackets(): Jan 5 18:24:14 raspberrypi weewx[7763]: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 507, in genLoopPackets Jan 5 18:24:14 raspberrypi weewx[7763]: **** for _loop_packet in self.genDavisLoopPackets(200): Jan 5 18:24:14 raspberrypi weewx[7763]: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 534, in genDavisLoopPackets Jan 5 18:24:14 raspberrypi weewx[7763]: **** _buffer = self.port.read(99) Jan 5 18:24:14 raspberrypi weewx[7763]: **** File "/home/weewx/bin/weewx/drivers/vantage.py", line 255, in read Jan 5 18:24:14 raspberrypi weewx[7763]: **** _buffer = self.serial_port.read(chars) Jan 5 18:24:14 raspberrypi weewx[7763]: **** File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 472, in read Jan 5 18:24:14 raspberrypi weewx[7763]: **** ready, _, _ = select.select([self.fd, self.pipe_abort_read_r], [], [], timeout.time_left()) Jan 5 18:24:14 raspberrypi weewx[7763]: **** File "/home/weewx/bin/weewx/engine.py", line 795, in sigTERMhandler Jan 5 18:24:14 raspberrypi weewx[7763]: **** raise Terminate Jan 5 18:24:14 raspberrypi weewx[7763]: **** Terminate Jan 5 18:24:19 raspberrypi weewx[7810]: Stopping weewx weather system: weewx.. Jan 5 18:24:19 raspberrypi systemd[1]: Stopped LSB: weewx weather system.
# Copyright (c) 2009-2015 Tom Keffer <[email protected]> # See the file LICENSE.txt for your rights. """Example of how to implement an alarm in weewx. ******************************************************************************* To use this alarm, add the following to the weewx configuration file: [Alarm] expression = "outTemp > 40.0" time_wait = 3600 smtp_host = XXXXXXX smtp_user = XXXXXXXx smtp_password = XXXXXXX from = XXXXXX mailto = XXXXXXX subject = "Alarm message from weewx!" In this example, if the outside temperature falls below 40, it will send an email to the users specified in the comma separated list specified in option "mailto", in this case: [email protected], [email protected] The example assumes an SMTP email server at smtp.example.com that requires login. If the SMTP server does not require login, leave out the lines for smtp_user and smtp_password. Setting an email "from" is optional. If not supplied, one will be filled in, but your SMTP server may or may not accept it. Setting an email "subject" is optional. If not supplied, one will be filled in. To avoid a flood of emails, one will only be sent every 3600 seconds (one hour). ******************************************************************************* To enable this service: 1) copy this file to the user directory 2) modify the weewx configuration file by adding this service to the option "report_services", located in section [Engine][[Services]]. [Engine] [[Services]] ... report_services = weewx.engine.StdPrint, weewx.engine.StdReport, user.alarm.MyAlarm ******************************************************************************* If you wish to use both this example and the lowBattery.py example, simply merge the two configuration options together under [Alarm] and add both services to report_services. ******************************************************************************* """ import time import smtplib from email.mime.text import MIMEText import threading import syslog import weewx from weewx.engine import StdService from weeutil.weeutil import timestamp_to_string, option_as_list # Inherit from the base class StdService: class MyAlarm(StdService): """Service that sends email if an arbitrary expression evaluates true""" def __init__(self, engine, config_dict): # Pass the initialization information on to my superclass: super(MyAlarm, self).__init__(engine, config_dict) # This will hold the time when the last alarm message went out: self.last_msg_ts = 0 try: # Dig the needed options out of the configuration dictionary. # If a critical option is missing, an exception will be raised and # the alarm will not be set. self.expression = config_dict['Alarm']['expression'] self.time_wait = int(config_dict['Alarm'].get('time_wait', 3600)) self.smtp_host = config_dict['Alarm']['smtp_host'] self.smtp_user = config_dict['Alarm'].get('smtp_user') self.smtp_password = config_dict['Alarm'].get('smtp_password') self.SUBJECT = config_dict['Alarm'].get('subject', "Alarm message from weewx") self.FROM = config_dict['Alarm'].get('from', '[email protected]') self.TO = option_as_list(config_dict['Alarm']['mailto']) syslog.syslog(syslog.LOG_INFO, "alarm: Alarm set for expression: '%s'" % self.expression) # If we got this far, it's ok to start intercepting events: self.bind(weewx.NEW_ARCHIVE_RECORD, self.newArchiveRecord) # NOTE 1 except KeyError as e: syslog.syslog(syslog.LOG_INFO, "alarm: No alarm set. Missing parameter: %s" % e) def newArchiveRecord(self, event): """Gets called on a new archive record event.""" # To avoid a flood of nearly identical emails, this will do # the check only if we have never sent an email, or if we haven't # sent one in the last self.time_wait seconds: if not self.last_msg_ts or abs(time.time() - self.last_msg_ts) >= self.time_wait : # Get the new archive record: record = event.record # Be prepared to catch an exception in the case that the expression contains # a variable that is not in the record: try: # NOTE 2 # Evaluate the expression in the context of the event archive record. # Sound the alarm if it evaluates true: if eval(self.expression, None, record): # NOTE 3 # Sound the alarm! # Launch in a separate thread so it doesn't block the main LOOP thread: t = threading.Thread(target = MyAlarm.soundTheAlarm, args=(self, record)) t.start() # Record when the message went out: self.last_msg_ts = time.time() except NameError as e: # The record was missing a named variable. Write a debug message, then keep going syslog.syslog(syslog.LOG_DEBUG, "alarm: %s" % e) def soundTheAlarm(self, rec): """This function is called when the given expression evaluates True.""" # Get the time and convert to a string: t_str = timestamp_to_string(rec['dateTime']) # Log it syslog.syslog(syslog.LOG_INFO, "alarm: Alarm expression \"%s\" evaluated True at %s" % (self.expression, t_str)) # Form the message text: msg_text = "Alarm expression \"%s\" evaluated True at %s\nRecord:\n%s" % (self.expression, t_str, str(rec)) # Convert to MIME: msg = MIMEText(msg_text) # Fill in MIME headers: msg['Subject'] = self.SUBJECT msg['From'] = self.FROM msg['To'] = ','.join(self.TO) try: # First try end-to-end encryption s=smtplib.SMTP_SSL(self.smtp_host) syslog.syslog(syslog.LOG_DEBUG, "alarm: using SMTP_SSL") except AttributeError: # If that doesn't work, try creating an insecure host, then upgrading s = smtplib.SMTP(self.smtp_host) try: # Be prepared to catch an exception if the server # does not support encrypted transport. s.ehlo() s.starttls() s.ehlo() syslog.syslog(syslog.LOG_DEBUG, "alarm: using SMTP encrypted transport") except smtplib.SMTPException: syslog.syslog(syslog.LOG_DEBUG, "alarm: using SMTP unencrypted transport") try: # If a username has been given, assume that login is required for this host: if self.smtp_user: s.login(self.smtp_user, self.smtp_password) syslog.syslog(syslog.LOG_DEBUG, "alarm: logged in with user name %s" % (self.smtp_user,)) # Send the email: s.sendmail(msg['From'], self.TO, msg.as_string()) # Log out of the server: s.quit() except Exception as e: syslog.syslog(syslog.LOG_ERR, "alarm: SMTP mailer refused message with error %s" % (e,)) raise # Log sending the email: syslog.syslog(syslog.LOG_INFO, "alarm: email sent to: %s" % self.TO) if __name__ == '__main__': """This section is used for testing the code. """ import sys import configobj from optparse import OptionParser usage_string ="""Usage: alarm.py config_path Arguments: config_path: Path to weewx.conf""" parser = OptionParser(usage=usage_string) (options, args) = parser.parse_args() if len(args) < 1: sys.stderr.write("Missing argument(s).\n") sys.stderr.write(parser.parse_args(["--help"])) exit() config_path = args[0] weewx.debug = 1 try : config_dict = configobj.ConfigObj(config_path, file_error=True) except IOError: print "Unable to open configuration file ", config_path exit() if 'Alarm' not in config_dict: print >>sys.stderr, "No [Alarm] section in the configuration file %s" % config_path exit(1) engine = None alarm = MyAlarm(engine, config_dict) rec = {'extraTemp1': 1.0, 'outTemp' : 38.2, 'dateTime' : int(time.time())} event = weewx.Event(weewx.NEW_ARCHIVE_RECORD, record=rec) alarm.newArchiveRecord(event)
