Rather than roll your own, why not just use the extension filepile <https://github.com/tkeffer/filepile>?
On Mon, Dec 2, 2024 at 12:33 AM tadej.j...@gmail.com < tadej.javor...@gmail.com> wrote: > Hello, i cannot get it to work. It was working in my previous setup. But > now I cannot find what is wrong with new install and RPi. > I have value from PM sensor stored in .txt file, and I try to write it > into databas field "pm10_0" > > - I added file pm10.py into /weewx/bin/user/pm10.py it contains following > code: > > import syslog > import weewx > from weewx.wxengine import StdService > class pmbservice(StdService): > def __init__(self, engine, config_dict): > super(pmbservice, self).__init__(engine, config_dict) > d = config_dict.get('pmbservice', {}) > self.filename = d.get('filename', '/usb/www/pm10.txt') > syslog.syslog(syslog.LOG_INFO, "pmb: using %s" % self.filename) > self.bind(weewx.NEW_ARCHIVE_RECORD, self.read_file) > def read_file(self, event): > try: > with open(self.filename) as f: > value = f.read() > syslog.syslog(syslog.LOG_DEBUG, "pmb: found value of %s" % > value) > event.record['pm10_0'] = float(value) > except Exception, e: > syslog.syslog(syslog.LOG_ERR, "pmb: cannot read value: %s" % e) > > Then I added into weewx.conf the following line: > > [Engine] > # This section specifies which services should be run and in what > order. > [[Services]] > prep_services = weewx.engine.StdTimeSynch > *data_services = user.pm10.pmbservice* > process_services = weewx.engine.StdConvert, > weewx.engine.StdCalibrate, weewx.engine.StdQC, weew> > xtype_services = weewx.wxxtypes.StdWXXTypes, > weewx.wxxtypes.StdPressureCooker, > weewx.wxxtypes.S> > archive_services = weewx.engine.StdArchive > restful_services = weewx.restx.StdStationRegistry, > weewx.restx.StdWunderground, weewx.restx.Std> > report_services = weewx.engine.StdPrint, weewx.engine.StdReport > > And when i restart weewx i get the following error. > > 1 21:14:42 vremenska weewxd[449368]: INFO __main__: Initializing weewxd > version 5.1.0 > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Command line: > /usr/share/weewx/weewxd.py /etc/weewx/weewx.conf > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Using Python: > 3.11.2 (main, Sep 14 2024, 03:00:30) [GCC 12.2.0] > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Located at: > /usr/bin/python3 > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Platform: > Linux-6.6.51+rpt-rpi-2712-aarch64-with-glibc2.36 > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Locale: > 'sl_SI.UTF-8' > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Entry path: > /usr/share/weewx/weewxd.py > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: WEEWX_ROOT: > /etc/weewx > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Config file: > /etc/weewx/weewx.conf > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: User module: > /etc/weewx/bin/user > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Debug: 0 > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: User: > weewx > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Group: > weewx > dec 01 21:14:42 vremenska weewxd[449368]: INFO __main__: Groups: > weewx > dec 01 21:14:42 vremenska weewxd[449368]: INFO weewx.engine: Loading > station type GW1000 (user.gw1000) > dec 01 21:14:42 vremenska weewxd[449368]: INFO user.gw1000: GatewayDriver: > version is 0.6.3 > dec 01 21:14:42 vremenska weewxd[449368]: INFO user.gw1000: device > address is 192.168.0.218:45000 > dec 01 21:14:42 vremenska weewxd[449368]: INFO user.gw1000: poll > interval is 20 seconds > dec 01 21:14:43 vremenska weewxd[449368]: INFO user.gw1000: > GatewayCollector thread has been terminated > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: Caught > unrecoverable exception: > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > *multiple > exception types must be parenthesized (pm10.py, line 20)* > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > Traceback (most recent call last): > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "/usr/share/weewx/weewxd.py", line 121, in main > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > engine = weewx.engine.StdEngine(config_dict) > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "/usr/share/weewx/weewx/engine.py", line 89, in __init__ > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > self.loadServices(config_dict) > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "/usr/share/weewx/weewx/engine.py", line 157, in loadServices > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > obj = weeutil.weeutil.get_object(svc)(self, config_dict) > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "/usr/share/weewx/weeutil/weeutil.py", line 1404, in get_object > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > module = importlib.import_module(module_name) > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "/usr/lib/python3.11/importlib/__init__.py", line 126, in > import_module > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > return _bootstrap._gcd_import(name[level:], package, level) > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap>", line 1206, in _gcd_import > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap>", line 1178, in _find_and_load > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap>", line 690, in _load_unlocked > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap_external>", line 936, in exec_module > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap_external>", line 1074, in get_code > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap_external>", line 1004, in > source_to_code > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > File "/etc/weewx/bin/user/pm10.py", line 20 > dec 01 21:14:43 vremenska weewxd[449368]: Traceback (most recent call > last): > dec 01 21:14:43 vremenska weewxd[449368]: File > "/usr/share/weewx/weewxd.py", line 226, in <module> > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > except Exception, e: > dec 01 21:14:43 vremenska weewxd[449368]: main() > dec 01 21:14:43 vremenska weewxd[449368]: File > "/usr/share/weewx/weewxd.py", line 121, in main > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > ^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: engine = > weewx.engine.StdEngine(config_dict) > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > SyntaxError: multiple exception types must be parenthesized > dec 01 21:14:43 vremenska weewxd[449368]: > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: File > "/usr/share/weewx/weewx/engine.py", > line 89, in __init__ > dec 01 21:14:43 vremenska weewxd[449368]: CRITICAL __main__: **** > Exiting. > dec 01 21:14:43 vremenska weewxd[449368]: self.loadServices(config_ > dict) > dec 01 21:14:43 vremenska weewxd[449368]: File > "/usr/share/weewx/weewx/engine.py", > line 157, in loadServices > dec 01 21:14:43 vremenska weewxd[449368]: obj = > weeutil.weeutil.get_object(svc)(self, config_dict) > dec 01 21:14:43 vremenska weewxd[449368]: > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: File > "/usr/share/weewx/weeutil/weeutil.py", > line 1404, in get_object > dec 01 21:14:43 vremenska weewxd[449368]: module = > importlib.import_module(module_name) > dec 01 21:14:43 vremenska weewxd[449368]: > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: File > "/usr/lib/python3.11/importlib/__init__.py", > line 126, in import_module > dec 01 21:14:43 vremenska weewxd[449368]: return > _bootstrap._gcd_import(name[level:], package, level) > dec 01 21:14:43 vremenska weewxd[449368]: > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap>", line 1206, in _gcd_import > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap>", line 1178, in _find_and_load > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap>", line 1149, in _find_and_load_unlocked > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap>", line 690, in _load_unlocked > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap_external>", line 936, in exec_module > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap_external>", line 1074, in get_code > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap_external>", line 1004, in source_to_code > dec 01 21:14:43 vremenska weewxd[449368]: File "<frozen > importlib._bootstrap>", line 241, in _call_with_frames_removed > dec 01 21:14:43 vremenska weewxd[449368]: File > "/etc/weewx/bin/user/pm10.py", line 20 > dec 01 21:14:43 vremenska weewxd[449368]: except Exception, e: > dec 01 21:14:43 vremenska weewxd[449368]: ^^^^^^^^^^^^ > dec 01 21:14:43 vremenska weewxd[449368]: SyntaxError: multiple exception > types must be parenthesized > dec 01 21:14:43 vremenska systemd[1]: weewx.service: Main process exited, > code=exited, status=1/FAILURE > dec 01 21:14:43 vremenska systemd[1]: weewx.service: Failed with result > 'exit-code'. > > -- > 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+unsubscr...@googlegroups.com. > To view this discussion visit > https://groups.google.com/d/msgid/weewx-user/b84ac209-29ac-499a-aae6-32d698b28d37n%40googlegroups.com > <https://groups.google.com/d/msgid/weewx-user/b84ac209-29ac-499a-aae6-32d698b28d37n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/CAPq0zEAZOU1JXt9RqT7n4OaRto6X%2Bnp-958U8gVHM0xT5TtBJg%40mail.gmail.com.