Purple-Air causes imagegenerator crash in 5.0.2 but not in 4

92 views
Skip to first unread message

Clay Jackson

unread,
Apr 29, 2024, 11:36:59 PM4/29/24
to weewx-user

I'm updating from WeeWx Version 4 to 5.0.2 and when I do, the sample dashboard for Purple causes imgagegenerator to crash - here's the output from syslog.

Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: Caught unrecoverable exception in generator 'weewx.imagegenerator.ImageGenerator'
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** (1140, "In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'weewx.archive.usUnits
'; this is incompatible with sql_mode=only_full_group_by")
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** Traceback (most recent call last):
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 109, in get_series
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** return xtype.get_series(obs_type, timespan, db_manager, aggregate_type,
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** TypeError: AQI.get_series() got an unexpected keyword argument 'SKIN_ROOT'
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: ****
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** During handling of the above exception, another exception occurred:
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: ****
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** Traceback (most recent call last):
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weedb/mysql.py", line 53, in guarded_fn
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** return fn(*args, **kwargs)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weedb/mysql.py", line 247, in execute
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** self.cursor.execute(mysql_string, tuple(sql_tuple))
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** result = self._query(query)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** conn.query(q)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 558, in query
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** self._affected_rows = self._read_query_result(unbuffered=unbuffered)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 822, in _read_query_result
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** result.read()
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 1200, in read
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** first_packet = self.connection._read_packet()
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 772, in _read_packet
Apr 29 16:26:12 weewx python3[2282]: Traceback (most recent call last):
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 109, in get_series
Apr 29 16:26:12 weewx python3[2282]: return xtype.get_series(obs_type, timespan, db_manager, aggregate_type,
Apr 29 16:26:12 weewx python3[2282]: TypeError: AQI.get_series() got an unexpected keyword argument 'SKIN_ROOT'
Apr 29 16:26:12 weewx python3[2282]: During handling of the above exception, another exception occurred:
Apr 29 16:26:12 weewx python3[2282]: Traceback (most recent call last):
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weedb/mysql.py", line 53, in guarded_fn
Apr 29 16:26:12 weewx python3[2282]: return fn(*args, **kwargs)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weedb/mysql.py", line 247, in execute
Apr 29 16:26:12 weewx python3[2282]: self.cursor.execute(mysql_string, tuple(sql_tuple))
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute
Apr 29 16:26:12 weewx python3[2282]: result = self._query(query)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query
Apr 29 16:26:12 weewx python3[2282]: conn.query(q)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 558, in query
Apr 29 16:26:12 weewx python3[2282]: self._affected_rows = self._read_query_result(unbuffered=unbuffered)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 822, in _read_query_result
Apr 29 16:26:12 weewx python3[2282]: result.read()
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 1200, in read
Apr 29 16:26:12 weewx python3[2282]: first_packet = self.connection._read_packet()
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/connections.py", line 772, in _read_packet
Apr 29 16:26:12 weewx python3[2282]: packet.raise_for_error()
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
Apr 29 16:26:12 weewx python3[2282]: err.raise_mysql_exception(self._data)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
Apr 29 16:26:12 weewx python3[2282]: raise errorclass(errno, errval)
Apr 29 16:26:12 weewx python3[2282]: pymysql.err.OperationalError: (1140, "In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'weewx.archive.usUnits'; this i
s incompatible with sql_mode=only_full_group_by")
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** packet.raise_for_error()
Apr 29 16:26:12 weewx python3[2282]: During handling of the above exception, another exception occurred:
Apr 29 16:26:12 weewx python3[2282]: Traceback (most recent call last):
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/reportengine.py", line 220, in run
Apr 29 16:26:12 weewx python3[2282]: obj.start()
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/reportengine.py", line 409, in start
Apr 29 16:26:12 weewx python3[2282]: self.run()
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/imagegenerator.py", line 37, in run
Apr 29 16:26:12 weewx python3[2282]: self.gen_images(self.gen_ts)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/imagegenerator.py", line 100, in gen_images
Apr 29 16:26:12 weewx python3[2282]: plot = self.gen_plot(plotgen_ts,
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/imagegenerator.py", line 236, in gen_plot
Apr 29 16:26:12 weewx python3[2282]: start_vec_t, stop_vec_t, data_vec_t = weewx.xtypes.get_series(
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 114, in get_series
Apr 29 16:26:12 weewx python3[2282]: return xtype.get_series(obs_type, timespan, db_manager, aggregate_type,
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-data/bin/user/purple.py", line 627, in get_series
Apr 29 16:26:12 weewx python3[2282]: return weewx.xtypes.ArchiveTable.get_series(obs_type, timespan, db_manager, aggregate_type,
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 213, in get_series
Apr 29 16:26:12 weewx python3[2282]: agg_vt = get_aggregate(obs_type, stamp, do_aggregate, db_manager,
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 136, in get_aggregate
Apr 29 16:26:12 weewx python3[2282]: return xtype.get_aggregate(obs_type, timespan, aggregate_type, db_manager,
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-data/bin/user/purple.py", line 719, in get_aggregate
Apr 29 16:26:12 weewx python3[2282]: row = db_manager.getSql(select_stmt)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/manager.py", line 579, in getSql
Apr 29 16:26:12 weewx python3[2282]: _cursor.execute(sql, sqlargs)
Apr 29 16:26:12 weewx python3[2282]: File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weedb/mysql.py", line 62, in guarded_fn
Apr 29 16:26:12 weewx python3[2282]: raise klass(e)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
Apr 29 16:26:12 weewx python3[2282]: weedb.DatabaseError: (1140, "In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'weewx.archive.usUnits'; this is incompatible with sql_mode=only_full_group_by")
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** err.raise_mysql_exception(self._data)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** raise errorclass(errno, errval)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** pymysql.err.OperationalError: (1140, "In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'weewx.archive.usUnits'; this is incompatible with sql_mode=only_full_group_by")
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: ****
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** During handling of the above exception, another exception occurred:
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: ****
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** Traceback (most recent call last):
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/reportengine.py", line 220, in run
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** obj.start()
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/reportengine.py", line 409, in start
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** self.run()
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/imagegenerator.py", line 37, in run
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** self.gen_images(self.gen_ts)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/imagegenerator.py", line 100, in gen_images
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** plot = self.gen_plot(plotgen_ts,
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/imagegenerator.py", line 236, in gen_plot
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** start_vec_t, stop_vec_t, data_vec_t = weewx.xtypes.get_series(
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 114, in get_series
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** return xtype.get_series(obs_type, timespan, db_manager, aggregate_type,
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-data/bin/user/purple.py", line 627, in get_series
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** return weewx.xtypes.ArchiveTable.get_series(obs_type, timespan, db_manager, aggregate_type,
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 213, in get_series
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** agg_vt = get_aggregate(obs_type, stamp, do_aggregate, db_manager,
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/xtypes.py", line 136, in get_aggregate
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** return xtype.get_aggregate(obs_type, timespan, aggregate_type, db_manager,
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-data/bin/user/purple.py", line 719, in get_aggregate
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** row = db_manager.getSql(select_stmt)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weewx/manager.py", line 579, in getSql
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** _cursor.execute(sql, sqlargs)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** File "/home/weewx/weewx-venv/lib/python3.10/site-packages/weedb/mysql.py", line 62, in guarded_fn
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** raise klass(e)
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** weedb.DatabaseError: (1140, "In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'weewx.archive.usUnits'; this is incompatible with sql_mode=only_full_group_by")
Apr 29 16:26:12 weewx weewxd[2282]: ERROR weewx.reportengine: **** Generator terminated


Tom Keffer

unread,
Apr 29, 2024, 11:48:17 PM4/29/24
to weewx...@googlegroups.com
It looks like the "purple" extension is trying to aggregate by groups, but asking for a non-aggregated value for 'usUnits'. 

What extension is this? The purple air extension I see on the wiki uses the module "user.purpleair", not "user.purple".

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/6866dcbd-f175-4977-adc5-bd351a06f0e9n%40googlegroups.com.

John Kline

unread,
Apr 30, 2024, 1:39:44 AM4/30/24
to weewx...@googlegroups.com
It’s my extension.  MySQL doesn’t like the select when sql_mode=only_full_group_by.

clayj, please replace purple.py with the attached file.  If it works for you, I’ll release it as v3.9.2.

purple.py

Clay Jackson

unread,
Apr 30, 2024, 5:04:14 AM4/30/24
to weewx-user
This version works perfectly!

John Kline

unread,
Apr 30, 2024, 1:29:45 PM4/30/24
to weewx...@googlegroups.com
Thanks for trying it.  I’ve release v3.9.2 with the fix.

On Apr 29, 2024, at 10:04 PM, Clay Jackson <cl...@n7qnm.net> wrote:

This version works perfectly!


On Monday, April 29, 2024 at 6:39:44 PM UTC-7 John Kline wrote:
It’s my extension.  MySQL doesn’t like the select when sql_mode=only_full_group_by.

clayj, please replace purple.py with the attached file.  If it works for you, I’ll release it as v3.9.2.

--
You received this message because you are subscribed to the Google Groups "weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages