Add observation from .txt file fails

83 views
Skip to first unread message

tadej.j...@gmail.com

unread,
Dec 2, 2024, 3:32:58 AM12/2/24
to weewx-user
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'.

Graham Eddy

unread,
Dec 2, 2024, 5:03:58 AM12/2/24
to WeeWX User
python3 syntax: no comma between ‘Exception' and ‘e'.

also you would want to be using weewx logging rather than syslog
⊣GE⊢

On 2 Dec 2024, at 7:32 pm, tadej.j...@gmail.com <tadej.j...@gmail.com> wrote:

except Exception, e:

Tom Keffer

unread,
Dec 2, 2024, 7:34:09 AM12/2/24
to weewx...@googlegroups.com
Rather than roll your own, why not just use the extension filepile?

--
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 visit https://groups.google.com/d/msgid/weewx-user/b84ac209-29ac-499a-aae6-32d698b28d37n%40googlegroups.com.

tadej.j...@gmail.com

unread,
Dec 2, 2024, 11:52:48 AM12/2/24
to weewx-user
Thanks to both of you. I used Tom's "filepile" because i have several other sensors as well and now only one extension is needed, and it is working great.

ponedeljek, 2. december 2024 ob 13:34:09 UTC+1 je oseba Tom Keffer napisala:
Reply all
Reply to author
Forward
0 new messages