matthewwall / weewx-cmon

capture and display computer telemetry
GNU General Public License v3.0
3 stars 5 forks source link

cmon (on rpi) crashes with ValueError: accum: ScalarStats.addHiLo expected float or int, got type '<type 'long'>' ('nnnnnnn') #3

Open bobclare opened 4 years ago

bobclare commented 4 years ago

Hi All, since this morning, cmon has been regularly crashing weewx. I seem to recall that I had a similar issue over a year ago, and I disabled cmon because of that. Recently, after having had to reinstall my rpi (no longer running from an sd card!), and so I tried to enable cmon again. It's been running fine, after I fixed an issue (see open issues) with the cpu temperature. But, starting this morning, no love any more. Every few archive intervals, I get the following dump. Restarting works for a while, but within one to two archive intervals, it will crash again. I have tried to see what is causing the issue, but I am getting lost in a maze of OO. I can't even figure out type of reading is causing the issue. I can't find any "type long" variables, so something weird must be happening... Anyway, can any weewx gurus shed some light on this, or even point me in the right direction to get more info out of weewx when this happens?

The system dump follows. The actual value of the "long" varies. It's been 392949, 161914, 70677, 267919, 166319 and 158424 in the dumps that have been generated today. I was hoping to get some feeling for which value it could have been, but they are no help. The following messages were consecutive and occurred within one second of each other.

Thanks for any help!

manager: Added record 2020-10-15 08:50:21 PDT (1602777021) to database 'cmon.sdb' engine: Main loop exiting. Shutting engine down. engine: Shutting down StdReport thread engine: Caught unrecoverable exception in engine: accum: ScalarStats.addHiLo expected float or int, got type '<type 'long'>' ('392949') Traceback (most recent call last): File "/usr/share/weewx/weewx/engine.py", line 894, in main engine.run() File "/usr/share/weewx/weewx/engine.py", line 202, in run self.dispatchEvent(weewx.Event(weewx.POST_LOOP)) File "/usr/share/weewx/weewx/engine.py", line 224, in dispatchEvent callback(event) File "/usr/share/weewx/weewx/engine.py", line 582, in post_loop self._software_catchup() File "/usr/share/weewx/weewx/engine.py", line 646, in _software_catchup self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD, record=record, origin='software')) File "/usr/share/weewx/weewx/engine.py", line 224, in dispatchEvent callback(event) File "/usr/share/weewx/user/cmon.py", line 704, in new_archive_record self.save_data(self.get_data(now, self.last_ts)) File "/usr/share/weewx/user/cmon.py", line 711, in save_data self.dbm.addRecord(record) File "/usr/share/weewx/weewx/manager.py", line 246, in addRecord self._addSingleRecord(record, cursor, log_level) File "/usr/share/weewx/weewx/manager.py", line 1216, in _addSingleRecord _day_summary.addRecord(record, weight=_weight) File "/usr/share/weewx/weewx/accum.py", line 260, in addRecord func(self, record, obs_type, add_hilo, weight) File "/usr/share/weewx/weewx/accum.py", line 318, in add_value self[obs_type].addHiLo(val, record['dateTime']) File "/usr/share/weewx/weewx/accum.py", line 78, in addHiLo "got type '%s' ('%s')" % (type(val), val)) ValueError: accum: ScalarStats.addHiLo expected float or int, got type '<type 'long'>' ('392949') Exiting.