Weewx stops reporting on fixed interval

374 views
Skip to first unread message

Mauro De Lauretis

unread,
Dec 16, 2020, 5:46:21 AM12/16/20
to weewx-user
Hello,

I have been experiencing an issue for the last two weeks, and so far have not been able to determine the cause. I was hoping someone may have some ideas.

I am running the Weather34 Skin (https://github.com/steepleian/weewx-Weather34)
Weewx 4.2.0.
MySQL Database
OS Rasbian on Raspberry

At fixed intervals (7-8 hours, more and less) the system stops entering data into the database and upload files into my web server, but I cannot see any suitable information or error from the syslog. If I restart Weewx, everything turns to work great. Then, after this "famous" 7-8 hours, Weewx stops again to report and doesn't work before I make a manually restart.

If anyone has any ideas it would be very much appreciated.

Thanks
Mauro

Tom Keffer

unread,
Dec 16, 2020, 8:11:56 AM12/16/20
to weewx-user
I know you think the log is uninteresting, but to more experienced eyes, it may contain some clues. Be sure to set debug=1.

Also, what kind of hardware?

--
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/364687cb-7bc2-43d2-aaca-0b946a933da2n%40googlegroups.com.

Mauro De Lauretis

unread,
Dec 16, 2020, 8:32:23 AM12/16/20
to weewx-user
Hi Tom,
I've never thought that the log is interesting, simply I was not able to see where the error is. :-)

Station Hardware is a Davis Vantage Pro2, while the debug is already set to debug = 1.

Regards
Mauro

Tom Keffer

unread,
Dec 16, 2020, 8:41:45 AM12/16/20
to weewx-user
Sorry, but it does not look like you attached the log.

Mauro De Lauretis

unread,
Dec 16, 2020, 9:04:41 AM12/16/20
to weewx-user
You're right, Tom.
If not attached the log because I should copy and paste you the exactly moment when Weewx stops reporting, but how can I do it when I'm not logged on my Raspberry when it happens? Are there other possibilities?

Tom Keffer

unread,
Dec 16, 2020, 9:28:09 AM12/16/20
to weewx-user
If you can ssh into your RPi, you could scp the log to somewhere convenient. Then upload it to a cloud service such as pastebin.com

Alternatively, you can use a text editor to trim it down to the essentials, then post it here. But, please don't post anything too big here.

-tk

Mauro De Lauretis

unread,
Dec 16, 2020, 10:03:17 AM12/16/20
to weewx-user
Yes, I can ssh into my RPi, but I don't know how to scp the log.
Message has been deleted

Karen K

unread,
Dec 16, 2020, 10:24:54 AM12/16/20
to weewx-user
on the computer where you run ssh:
scp root@rpi:/var/log/syslog .

Please, note the dot at the end. Replace "rpi" by the IP address or name of your RPi. May be, you need to replace "root" by "pi" or "user" to get it work.

After that you will find a file named "syslog" in the current directory. You can open it with any text editor.

Mauro De Lauretis

unread,
Dec 16, 2020, 11:35:59 AM12/16/20
to weewx-user
Thank you! 

Mauro De Lauretis

unread,
Dec 16, 2020, 4:08:25 PM12/16/20
to weewx-user
Tom, maybe I've found the problem of the stopping:

Dec 16 00:13:45 raspberrypi weewx[2295]: Stopping weewx weather system: weewx not running....

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Succeeded.

Dec 16 00:13:45 raspberrypi systemd[1]: Stopped LSB: weewx weather system.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25134 (sh) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25135 (wget) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25137 (sh) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25138 (wget) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25139 (sh) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25140 (wget) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25160 (sh) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25161 (wget) in control group while starting unit. Ignoring.

Dec 16 00:13:45 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:45 raspberrypi systemd[1]: weewx.service: Found left-over process 25163 (sh) in control group while starting unit. Ignoring.

Dec 16 00:13:46 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:46 raspberrypi systemd[1]: weewx.service: Found left-over process 25165 (wget) in control group while starting unit. Ignoring.

Dec 16 00:13:46 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:46 raspberrypi systemd[1]: weewx.service: Found left-over process 25168 (sh) in control group while starting unit. Ignoring.

Dec 16 00:13:46 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:46 raspberrypi systemd[1]: weewx.service: Found left-over process 25170 (wget) in control group while starting unit. Ignoring.

Dec 16 00:13:46 raspberrypi systemd[1]: This usually indicates unclean termination of a previous run, or service implementation deficiencies.

Dec 16 00:13:46 raspberrypi systemd[1]: weewx.service: Found left-over process 25177 (sh) in control group while starting unit. Ignoring.


Mauro De Lauretis

unread,
Dec 17, 2020, 3:13:43 AM12/17/20
to weewx-user
I've found also this:

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__: Caught unrecoverable exception:

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  can't start new thread

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  Traceback (most recent call last):

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewxd", line 148, in main

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      engine = weewx.engine.StdEngine(config_dict)

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 81, in __init__

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      self.loadServices(config_dict)

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 153, in loadServices

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      obj = weeutil.weeutil.get_object(svc)(self, config_dict)

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/restx.py", line 1430, in __init__

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      self.archive_thread.start()

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/usr/lib/python3.7/threading.py", line 847, in start

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      _start_new_thread(self._bootstrap, ())

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  RuntimeError: can't start new thread

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  Exiting.



gjr80

unread,
Dec 17, 2020, 3:27:40 AM12/17/20
to weewx-user
Hi,

Whilst log extracts showing individual error traces can be important, seeing the wider picture can be equally important in tracking down such an issue. Could I suggest that you identify one of the times when WeeWX has ‘stopped’ and then post the log from say 15-20 minutes beforehand through until you restarted WeeWX. Don’t edit the log (other than taking the extract) and make sure you include a good 10 minutes of log after the error occurred. That way we see what WeeWX was doing at the time of the problem and in the immediate period after.

When Tom said avoid posting large log extracts that was really aimed at preventing direct posting of 7-8 hours of log.

Gary

Mauro De Lauretis

unread,
Dec 17, 2020, 5:49:44 AM12/17/20
to weewx-user

Dec 17 04:56:43 raspberrypi weewx[22459] INFO weewx.cheetahgenerator: Generated 1 files for report Weather34Report in 10.83 seconds

Dec 17 04:56:43 raspberrypi weewx[22459] INFO weewx.reportengine: Copied 0 files to /var/www/html/weewx/weather34/

Dec 17 04:56:43 raspberrypi weewx[22459] DEBUG weewx.reportengine: Running report 'w34Highcharts'

Dec 17 04:56:44 raspberrypi weewx[22459] DEBUG weewx.reportengine: Found configuration file /home/weewx/skins/w34Highcharts/skin.conf for report 'w34Highcharts'

Dec 17 04:56:44 raspberrypi weewx[22459] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.chee$

Dec 17 04:56:44 raspberrypi weewx[22459] DEBUG weewx.manager: Daily summary version is 2

Dec 17 04:56:49 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:56:52 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:56:53 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:56:55 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:56:56 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:56:56 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:56:56 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:56:56 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:56:56 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:56:56 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:57:01 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:57:02 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $


Dec 17 04:57:04 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:57:04 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:57:04 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:57:04 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:57:04 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:57:04 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:57:06 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:57:08 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:57:08 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:57:08 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:57:08 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:57:08 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:57:08 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:57:11 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:57:13 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:57:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:57:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:57:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:57:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:57:14 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:57:15 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:57:16 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:57:17 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:57:17 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:57:17 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:57:18 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:57:18 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:57:18 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:57:42 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:57:52 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:58:00 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:02 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:02 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:02 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:02 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:02 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:02 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:04 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:05 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:05 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:05 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:05 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:05 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:06 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:07 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:09 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:09 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:09 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:09 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:09 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:09 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:12 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:14 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:14 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:14 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:14 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:14 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:14 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'


Dec 17 04:58:27 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:58:28 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:31 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:31 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:33 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:33 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:33 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:33 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:33 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:33 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:33 raspberrypi weewx[22459] DEBUG weewx.cheetahgenerator: Skip 'year.json': last_mod=1608176915.0212016 age=598.8853883743286 stale=600

Dec 17 04:58:33 raspberrypi weewx[22459] INFO weewx.cheetahgenerator: Generated 6 files for report w34Highcharts in 109.38 seconds

Dec 17 04:58:33 raspberrypi weewx[22459] INFO weewx.reportengine: Copied 0 files to /var/www/html/weewx/weather34/w34highcharts

Dec 17 04:58:37 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:38 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:38 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:41 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:42 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:42 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:42 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:42 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:42 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:42 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:48 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:49 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:49 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:49 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:49 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:49 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:49 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:51 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:52 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:58:52 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:58:52 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:58:52 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:58:52 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:58:52 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:58:58 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:58:59 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:59:00 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:59:00 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:59:00 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:59:00 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:59:00 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:59:13 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:59:20 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:59:21 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:59:21 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:59:21 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:59:21 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:59:21 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:59:21 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:59:30 raspberrypi weewx[22459] ERROR weewx.drivers.vantage: LOOP try #1; error: LOOP buffer failed CRC check

Dec 17 04:59:30 raspberrypi weewx[22459] ERROR weewx.drivers.vantage: LOOP try #2; error: LOOP buffer failed CRC check

Dec 17 04:59:30 raspberrypi weewx[22459] ERROR weewx.drivers.vantage: LOOP max tries (4) exceeded.

Dec 17 04:59:30 raspberrypi weewx[22459] INFO weewx.engine: Main loop exiting. Shutting engine down.

Dec 17 04:59:30 raspberrypi weewx[22459] INFO weewx.engine: Shutting down StdReport thread

Dec 17 04:59:30 raspberrypi weewx[22459] DEBUG weewx.engine: StdReport thread has been terminated

Dec 17 04:59:30 raspberrypi weewx[22459] DEBUG weewx.restx: Shut down Wunderground-PWS thread.

Dec 17 04:59:30 raspberrypi weewx[22459] DEBUG weewx.restx: Shut down StationRegistry thread.

Dec 17 04:59:30 raspberrypi weewx[22459] CRITICAL __main__: Caught WeeWxIOError: Max tries exceeded while getting LOOP data.

Dec 17 04:59:30 raspberrypi weewx[22459] CRITICAL __main__:     ****  Waiting 60 seconds then retrying...

Dec 17 04:59:33 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:59:37 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:59:38 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:59:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:59:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:59:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:59:38 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:59:38 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:59:43 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:59:46 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:59:47 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:59:47 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:59:47 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:59:47 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:59:47 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:59:47 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:59:49 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 04:59:50 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 04:59:50 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 04:59:50 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 04:59:50 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 04:59:50 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 04:59:50 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 04:59:51 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 04:59:51 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 05:00:01 raspberrypi CRON[31050]: (root) CMD (/root/realtime.sh)

Dec 17 05:00:01 raspberrypi CRON[31049]: (CRON) info (No MTA installed, discarding output)

Dec 17 05:00:12 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 05:00:13 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 05:00:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 05:00:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 05:00:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 05:00:13 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 05:00:13 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 05:00:15 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url1 exit code 0

Dec 17 05:00:16 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover url2 exit code 0

Dec 17 05:00:16 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IHDR' 16 13

Dec 17 05:00:16 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'gAMA' 41 4

Dec 17 05:00:16 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'pHYs' 57 9

Dec 17 05:00:16 raspberrypi weewx[22459] DEBUG PIL.PngImagePlugin: STREAM b'IDAT' 78 65458

Dec 17 05:00:16 raspberrypi weewx[22459] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

Dec 17 05:00:26 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 05:00:28 raspberrypi weewx[22459] ERROR user.weather34: Failed getting web service data. URL: https://earthquake-report.com/feeds/recent-eq?json Header: ['User-Agent', 'Mozilla/5.0 (Macintosh; U; $

Dec 17 05:00:31 raspberrypi weewx[22459] INFO __main__: retrying...

Dec 17 05:00:31 raspberrypi weewx[22459] INFO __main__: Using configuration file /home/weewx/weewx.conf

Dec 17 05:00:31 raspberrypi weewx[22459] INFO __main__: Debug is 1

Dec 17 05:00:31 raspberrypi weewx[22459] DEBUG __main__: Initializing engine

Dec 17 05:00:31 raspberrypi weewx[22459] INFO weewx.engine: Loading station type Vantage (weewx.drivers.vantage)


Dec 17 05:00:32 raspberrypi weewx[22459] ERROR user.weather34: Failed to start service: al, Error: can't start new thread

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.weather34: CloudCover: not installed

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG user.weather34: CloudCover: due to error can't start new thread

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.weather34: Check lightning Strike Count: False

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG user.weather34: excluding fields: {'rain'}

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.weather34: Weather34 Weather34RealTime in cache is: True

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Finished loading service user.weather34.Weather34RealTime

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Loading service user.crt.CumulusRealTime

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.crt: service version is 0.21

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.crt: realtime txt output goes to /var/tmp/realtime.txt

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.crt: 'None' values will be displayed as NULL

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.crt: units will be displayed as METRIC

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.crt: zambretti forecast: False

Dec 17 05:00:32 raspberrypi weewx[22459] INFO user.crt: binding is loop

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Finished loading service user.crt.CumulusRealTime

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypes

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdWXXTypes

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCooker

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdPressureCooker

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdRainRater

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdRainRater

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Loading service weewx.engine.StdArchive

Dec 17 05:00:32 raspberrypi weewx[22459] INFO weewx.engine: Archive will use data binding wx_binding

Dec 17 05:00:32 raspberrypi weewx[22459] INFO weewx.engine: Record generation will be attempted in 'hardware'

Dec 17 05:00:32 raspberrypi weewx[22459] INFO weewx.engine: Using archive interval of 300 seconds (specified by hardware)

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive

Dec 17 05:00:32 raspberrypi weewx[22459] DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__: Caught unrecoverable exception:

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  can't start new thread

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  Traceback (most recent call last):

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewxd", line 148, in main

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      engine = weewx.engine.StdEngine(config_dict)

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 81, in __init__

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      self.loadServices(config_dict)

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/engine.py", line 153, in loadServices

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      obj = weeutil.weeutil.get_object(svc)(self, config_dict)

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/home/weewx/bin/weewx/restx.py", line 1430, in __init__

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      self.archive_thread.start()

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****    File "/usr/lib/python3.7/threading.py", line 847, in start

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****      _start_new_thread(self._bootstrap, ())

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  RuntimeError: can't start new thread

Dec 17 05:00:32 raspberrypi weewx[22459] CRITICAL __main__:     ****  Exiting.

Dec 17 05:05:01 raspberrypi CRON[31073]: (root) CMD (/root/realtime.sh)

Dec 17 05:05:02 raspberrypi CRON[31072]: (CRON) info (No MTA installed, discarding output)

Dec 17 05:09:01 raspberrypi CRON[31080]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && if [ ! -d /run/systemd/system ]; then /usr/lib/php/sessionclean; fi)

Dec 17 05:09:01 raspberrypi systemd[1]: Starting Clean php session files...

Dec 17 05:09:04 raspberrypi systemd[1]: phpsessionclean.service: Succeeded.

Dec 17 05:09:04 raspberrypi systemd[1]: Started Clean php session files.

Dec 17 05:10:01 raspberrypi CRON[31151]: (root) CMD (/root/realtime.sh)

Dec 17 05:10:02 raspberrypi CRON[31150]: (CRON) info (No MTA installed, discarding output)

Dec 17 05:15:01 raspberrypi CRON[31158]: (root) CMD (/root/realtime.sh)

Dec 17 05:15:01 raspberrypi CRON[31157]: (CRON) info (No MTA installed, discarding output)

Dec 17 05:17:01 raspberrypi CRON[31163]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Dec 17 05:20:01 raspberrypi CRON[31172]: (root) CMD (/root/realtime.sh)

Dec 17 05:20:01 raspberrypi CRON[31171]: (CRON) info (No MTA installed, discarding output)



Tom Keffer

unread,
Dec 17, 2020, 8:29:51 AM12/17/20
to weewx-user
You have a complicated system running a lot of services, so it's hard to unravel what's going on.

One common theme is the inability to start new threads, which makes me suspect a memory leak. Here's the theory: some service is leaking memory. After 7-8 hours there is no free memory left, and so things start crashing. If this is the case, you are going to have to do some sleuthing on your own. Run the utility 'free' regularly. It will show you how much free memory there is. Run it every hour or so. See if the amount of free memory is steadily declining until gone. 

However, there is one anomaly that gives me pause: the Vantage LOOP CRC errors (at 04:59:30). Offhand, I don't see how these would be caused by low memory issues. What kind of logger does your Vantage have?

Finally, because you have a complicated system, it would be helpful to see your configuration file weewx.conf. Use the utility wee_debug with the --info option.

cd /home/weewx
./bin/wee_debug --info

It should obfuscate any passwords, but double check the results to make sure there is no sensitive information in there, then post the output.

-tk

Mauro De Lauretis

unread,
Dec 17, 2020, 11:01:21 AM12/17/20
to weewx-user
Hi Tom,
thank you for your detailed answer.
I've already disabled the unused services even before posting you the syslog and it seems to be better than before.
Until now I didn't get a shutdown of the reports, but I will observe further during the next hours.

- By running the free utility I can deduce enough memory left, including swap.

As you can see, it's a compatible model, but I never got the LOOP CRC errors before. I guess something happened in the last days because today it's the first day I see them.

- I've also noted this error that I'm not able to resolve on my own: raspberrypi weewx[15169] DEBUG PIL.Image: Error closing: 'Image' object has no attribute 'fp'

At least, here is my wee_debug:

Using configuration file /home/weewx/weewx.conf

Using database binding 'wx_binding', which is bound to database 'archive_mysql'


System info

  Platform:       Linux-5.4.79+-armv6l-with-debian-10.7

  Python Version: 3.7.3


Load Information

  1 minute load average:  1.89

  5 minute load average:  1.90

  15 minute load average: 1.85


General Weewx info

  Weewx version 4.2.0 detected.


Station info

  Station type: Vantage

  Driver:       weewx.drivers.vantage


Driver info

[Vantage]

    # This section is for the Davis Vantage series of weather stations.

    

    # Connection type: serial or ethernet 

    #  serial (the classic VantagePro)

    #  ethernet (the WeatherLinkIP or Serial-Ethernet bridge)

    type = serial

    

    # If the connection type is serial, a port must be specified:

    #   Debian, Ubuntu, Redhat, Fedora, and SuSE:

    #     /dev/ttyUSB0 is a common USB port name

    #     /dev/ttyS0   is a common serial port name

    #   BSD:

    #     /dev/cuaU0   is a common serial port name

    port = /dev/ttyUSB0

    

    # If the connection type is ethernet, an IP Address/hostname is required:

    host = 1.2.3.4

    

    ######################################################

    # The rest of this section rarely needs any attention. 

    # You can safely leave it "as is."

    ######################################################

    

    # Serial baud rate (usually 19200)

    baudrate = 19200

    

    # TCP port (when using the WeatherLinkIP)

    tcp_port = 22222

    

    # TCP send delay (when using the WeatherLinkIP):

    tcp_send_delay = 0.5

    

    # The type of LOOP packet to request: 1 = LOOP1; 2 = LOOP2; 3 = both

    loop_request = 1

    

    # The id of your ISS station (usually 1). If you use a wind meter connected

    # to a anemometer transmitter kit, use its id

    iss_id = 1

    

    # How long to wait for a response from the station before giving up (in

    # seconds; must be greater than 2)

    timeout = 4

    

    # How long to wait before trying again (in seconds)

    wait_before_retry = 1.2

    

    # How many times to try before giving up:

    max_tries = 4

    

    # Vantage model Type: 1 = Vantage Pro; 2 = Vantage Pro2

    model_type = 2

    

    # The driver to use:

    driver = weewx.drivers.vantage


Currently installed extensions

Extension Name    Version   Description

crt               0.21      Emit a Cumulus realtime.txt for LOOP data.


Archive info

  Database name:        weewx

  Table name:           archive

  Version               2

  Unit system:          16 (METRIC)

  First good timestamp: 2016-10-01 15:40:00 CEST (1475329200)

  Last good timestamp:  2020-12-17 16:50:00 CET (1608220200)

  Number of records:    278113

  weewx (weewx.conf) is set to use an archive interval of 300 seconds.

  The station hardware was not interrogated in determining archive interval.


Databases configured in weewx.conf

  Database name:        weewx.sdb

  Database driver:      weedb.sqlite


  Database name:        weewx

  Database driver:      weedb.mysql

  Database host:        localhost



Parsed and obfuscated weewx.conf

# WEEWX CONFIGURATION FILE

#

# Copyright (c) 2009-2020 Tom Keffer <tke...@gmail.com>

# See the file LICENSE.txt for your rights.


##############################################################################


# This section is for general configuration information.


# Set to 1 for extra debug info, otherwise comment it out or set to zero

debug = 1


# Root directory of the weewx data file hierarchy for this station

WEEWX_ROOT = /home/weewx


# Whether to log successful operations

log_success = True


# Whether to log unsuccessful operations

log_failure = True


# How long to wait before timing out a socket (FTP, HTTP) connection

socket_timeout = 20


# Do not modify this. It is used when installing and updating weewx.

version = 4.2.0


##############################################################################


#   This section is for information about the station.


[Station]

    

    # Description of the station location

    location = Pineto

    

    # Latitude in decimal degrees. Negative for southern hemisphere

    latitude = 42.634585

    # Longitude in decimal degrees. Negative for western hemisphere.

    longitude = 14.040554

    

    # Altitude of the station, with unit it is in. This is downloaded from

    # from the station if the hardware supports it.

    altitude = 40, meter    # Choose 'foot' or 'meter' for unit

    

    # Set to type of station hardware. There must be a corresponding stanza

    # in this file with a 'driver' parameter indicating the driver to be used.

    station_type = Vantage

    

    # If you have a website, you may specify an URL

    station_url = XXX obfuscated by wee_debug XXX

    

    # The start of the rain year (1=January; 10=October, etc.). This is

    # downloaded from the station if the hardware supports it.

    rain_year_start = 1

    

    # Start of week (0=Monday, 6=Sunday)

    week_start = 0


##############################################################################


[Vantage]

    # This section is for the Davis Vantage series of weather stations.

    

    # Connection type: serial or ethernet 

    #  serial (the classic VantagePro)

    #  ethernet (the WeatherLinkIP or Serial-Ethernet bridge)

    type = serial

    

    # If the connection type is serial, a port must be specified:

    #   Debian, Ubuntu, Redhat, Fedora, and SuSE:

    #     /dev/ttyUSB0 is a common USB port name

    #     /dev/ttyS0   is a common serial port name

    #   BSD:

    #     /dev/cuaU0   is a common serial port name

    port = /dev/ttyUSB0

    

    # If the connection type is ethernet, an IP Address/hostname is required:

    host = 1.2.3.4

    

    ######################################################

    # The rest of this section rarely needs any attention. 

    # You can safely leave it "as is."

    ######################################################

    

    # Serial baud rate (usually 19200)

    baudrate = 19200

    

    # TCP port (when using the WeatherLinkIP)

    tcp_port = 22222

    

    # TCP send delay (when using the WeatherLinkIP):

    tcp_send_delay = 0.5

    

    # The type of LOOP packet to request: 1 = LOOP1; 2 = LOOP2; 3 = both

    loop_request = 1

    

    # The id of your ISS station (usually 1). If you use a wind meter connected

    # to a anemometer transmitter kit, use its id

    iss_id = 1

    

    # How long to wait for a response from the station before giving up (in

    # seconds; must be greater than 2)

    timeout = 4

    

    # How long to wait before trying again (in seconds)

    wait_before_retry = 1.2

    

    # How many times to try before giving up:

    max_tries = 4

    

    # Vantage model Type: 1 = Vantage Pro; 2 = Vantage Pro2

    model_type = 2

    

    # The driver to use:

    driver = weewx.drivers.vantage


##############################################################################


#   This section is for uploading data to Internet sites


[StdRESTful]

    

    [[StationRegistry]]

        # To register this weather station with weewx, set this to true

        register_this_station = true

    

    [[AWEKAS]]

        # This section is for configuring posts to AWEKAS.

        

        # If you wish to do this, set the option 'enable' to true,

        # and specify a username and password.

        # To guard against parsing errors, put the password in quotes.

        enable = false

        username = XXX obfuscated by wee_debug XXX

        password = XXX obfuscated by wee_debug XXX

    

    [[CWOP]]

        # This section is for configuring posts to CWOP.

        

        # If you wish to do this, set the option 'enable' to true,

        # and specify the station ID (e.g., CW1234).

        enable = false

        station = XXX obfuscated by wee_debug XXX

    

    # If this is an APRS (radio amateur) station, uncomment

    # the following and replace with a passcode (e.g., 12345).

    #passcode = replace_me (APRS stations only)

    

    [[PWSweather]]

        # This section is for configuring posts to PWSweather.com.

        

        # If you wish to do this, set the option 'enable' to true,

        # and specify a station and password.

        # To guard against parsing errors, put the password in quotes.

        enable = false

        station = XXX obfuscated by wee_debug XXX

        password = XXX obfuscated by wee_debug XXX

    

    [[WOW]]

        # This section is for configuring posts to WOW.

        

        # If you wish to do this, set the option 'enable' to true,

        # and specify a station and password.

        # To guard against parsing errors, put the password in quotes.

        enable = false

        station = XXX obfuscated by wee_debug XXX

        password = XXX obfuscated by wee_debug XXX

    

    [[Wunderground]]

        # This section is for configuring posts to the Weather Underground.

        

        # If you wish to do this, set the option 'enable' to true,

        # and specify a station (e.g., 'KORHOODR3') and password.

        # To guard against parsing errors, put the password in quotes.

        enable = true

        station = XXX obfuscated by wee_debug XXX

        password = XXX obfuscated by wee_debug XXX

        

        # If you plan on using wunderfixer, set the following

        # to your API key:

        api_key = XXX obfuscated by wee_debug XXX

        

        # Set the following to True to have weewx use the WU "Rapidfire"

        # protocol. Not all hardware can support it. See the User's Guide.

        rapidfire = False


##############################################################################


#   This section specifies what reports, using which skins, to generate.


[StdReport]

    

    # Where the skins reside, relative to WEEWX_ROOT

    SKIN_ROOT = skins

    

    # Where the generated reports should go, relative to WEEWX_ROOT

    HTML_ROOT = public_html

    

    # The database binding indicates which data should be used in reports.

    data_binding = wx_binding

    

    # Whether to log a successful operation

    log_success = True

    

    # Whether to log an unsuccessful operation

    log_failure = False

    

    # Each of the following subsections defines a report that will be run.

    # See the customizing guide to change the units, plot types and line

    # colors, modify the fonts, display additional sensor data, and other

    # customizations. Many of those changes can be made here by overriding

    # parameters, or by modifying templates within the skin itself.

    

    [[SeasonsReport]]

        # The SeasonsReport uses the 'Seasons' skin, which contains the

        # images, templates and plots for the report.

        skin = Seasons

        enable = false

    

    [[SmartphoneReport]]

        # The SmartphoneReport uses the 'Smartphone' skin, and the images and

        # files are placed in a dedicated subdirectory.

        skin = Smartphone

        enable = false

        HTML_ROOT = public_html/smartphone

    

    [[MobileReport]]

        # The MobileReport uses the 'Mobile' skin, and the images and files

        # are placed in a dedicated subdirectory.

        skin = Mobile

        enable = false

        HTML_ROOT = public_html/mobile

    

    [[StandardReport]]

        # This is the old "Standard" skin. By default, it is not enabled.

        skin = Standard

        enable = True

    

    [[FTP]]

        # FTP'ing the results to a webserver is treated as just another report,

        # albeit one with an unusual report generator!

        skin = Ftp

        

        # If you wish to use FTP, set "enable" to "true", then

        # fill out the next four lines.

        # Use quotes around passwords to guard against parsing errors.

        enable = true

        user = XXX obfuscated by wee_debug XXX

        password = XXX obfuscated by wee_debug XXX

        server = ftp.meteopineto.it    # The ftp server name, e.g, www.myserver.org

        path = /htdocs/Caput    # The destination directory, e.g., /weather

        

        # Set to True for an FTP over TLS (FTPS) connection. Not all servers

        # support this.

        secure_ftp = False

        

        # To upload files from something other than what HTML_ROOT is set

        # to above, specify a different HTML_ROOT here.

        #HTML_ROOT = public_html

        

        # Most FTP servers use port 21

        port = 21

        

        # Set to 1 to use passive mode, zero for active mode

        passive = 1

    

    [[RSYNC]]

        # rsync'ing to a webserver is treated as just another report

        skin = Rsync

        

        # If you wish to use rsync, you must configure passwordless ssh using

        # public/private key authentication from the user account that weewx

        # runs to the user account on the remote machine where the files

        # will be copied.

        #

        # If you wish to use rsync, set "enable" to "true", then

        # fill out server, user, and path.

        # The server should appear in your .ssh/config file.

        # The user is the username used in the identity file.

        # The path is the destination directory, such as /var/www/html/weather.

        # Be sure that the user has write permissions on the destination!

        enable = false

        server = replace_me

        user = XXX obfuscated by wee_debug XXX

        path = replace_me

        

        # To upload files from something other than what HTML_ROOT is set

        # to above, specify a different HTML_ROOT here.

        #HTML_ROOT = public_html

        

        # Rsync can be configured to remove files from the remote server if

        # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you

        # make a mistake in the remote path, you could could unintentionally

        # cause unrelated files to be deleted. Set to 1 to enable remote file

        # deletion, zero to allow files to accumulate remotely.

        delete = 0

    

    ####

    

    # Various options for customizing your reports.

    

    [[Defaults]]

        

        [[[Units]]]

            

            # The following section sets what unit to use for each unit group.

            # NB: The unit is always in the singular. I.e., 'mile_per_hour',

            # NOT 'miles_per_hour'

            [[[[Groups]]]]

                

                group_altitude = meter    # Options are 'foot' or 'meter'

                group_degree_day = degree_C_day    # Options are 'degree_F_day' or 'degree_C_day'

                group_distance = km    # Options are 'mile' or 'km'

                group_pressure = hPa    # Options are 'inHg', 'mmHg', 'mbar', 'hPa', or 'kPa'

                group_rain = mm    # Options are 'inch', 'cm', or 'mm'

                group_rainrate = mm_per_hour    # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'

                group_speed = km_per_hour    # Options are 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second'

                group_speed2 = km_per_hour2    # Options are 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2'

                group_temperature = degree_C    # Options are 'degree_F' or 'degree_C'

            

            # The following section sets the formatting for each type of unit.

            [[[[StringFormats]]]]

                

                centibar = %.0f

                cm = %.2f

                cm_per_hour = %.2f

                degree_C = %.1f

                degree_F = %.1f

                degree_compass = %.0f

                foot = %.0f

                hPa = %.1f

                hour = %.1f

                inHg = %.3f

                inch = %.2f

                inch_per_hour = %.2f

                km = %.1f

                km_per_hour = %.0f

                km_per_hour2 = %.1f

                knot = %.0f

                knot2 = %.1f

                kPa = %.2f

                mbar = %.1f

                meter = %.0f

                meter_per_second = %.1f

                meter_per_second2 = %.1f

                mile = %.1f

                mile_per_hour = %.0f

                mile_per_hour2 = %.1f

                mm = %.1f

                mmHg = %.1f

                mm_per_hour = %.1f

                percent = %.0f

                second = %.0f

                uv_index = %.1f

                volt = %.1f

                watt_per_meter_squared = %.0f

                NONE = "   N/A"

            

            # The following section overrides the label used for each type of unit

            [[[[Labels]]]]

                

                meter = " meter", " meters"    # You may prefer "metre".

                day = " day", " days"

                hour = " hour", " hours"

                minute = " minute", " minutes"

                second = " second", " seconds"

                NONE = ""

            

            # The following section sets the format for each time scale.

            # The values below will work in every locale, but they may not look

            # particularly attractive.

            [[[[TimeFormats]]]]

                

                hour = %H:%M

                day = %X

                week = %X (%A)

                month = %x %X

                year = %x %X

                rainyear = %x %X

                current = %x %X

                ephem_day = %X

                ephem_year = %x %X

            

            [[[[Ordinates]]]]

                

                # Ordinal directions. The last one is for no wind direction

                directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW, N/A

            

            # The following section sets the base temperatures used for the

            #  calculation of heating, cooling, and growing degree-days.

            [[[[DegreeDays]]]]

                

                # Base temperature for heating days, with unit:

                heating_base = 65, degree_F

                # Base temperature for cooling days, with unit:

                cooling_base = 65, degree_F

                # Base temperature for growing days, with unit:

                growing_base = 50, degree_F

            

            # A trend takes a difference across a time period. The following

            # section sets the time period, and how big an error is allowed to

            # still be counted as the start or end of a period.

            [[[[Trend]]]]

                

                time_delta = 10800    # 3 hours

                time_grace = 300    # 5 minutes

        

        # The labels to be used for each observation type

        [[[Labels]]]

            

            # Set to hemisphere abbreviations suitable for your location:

            hemispheres = N, S, E, W

            

            # Formats to be used for latitude whole degrees, longitude whole

            # degrees, and minutes:

            latlon_formats = %02d, %03d, %05.2f

            

            # Generic labels, keyed by an observation type.

            [[[[Generic]]]]

                barometer = Pressione relativa

                dewpoint = Punto di Rugiada

                ET = ET

                heatindex = Indice di Calore

                inHumidity = Umidità interna

                inTemp = Temperatura interna

                outHumidity = Umidità

                outTemp = Temperatura

                radiation = Radiation

                rain = Pioggia

                rainRate = Rateo

                UV = UV Index

                windDir = Direzione Vento

                windGust = Raffica

                windGustDir = Direzione Raffica

                windSpeed = Vento

                windchill = Wind Chill

                windgustvec = Vettore Raffica

                windvec = Vettore Vento

                extraTemp1 = Temperature1

                extraTemp2 = Temperature2

                extraTemp3 = Temperature3

                

                # Sensor status indicators

                

                rxCheckPercent = Signal Quality

                txBatteryStatus = Transmitter Battery

                windBatteryStatus = Wind Battery

                rainBatteryStatus = Rain Battery

                outTempBatteryStatus = Outside Temperature Battery

                inTempBatteryStatus = Inside Temperature Battery

                consBatteryVoltage = Console Battery

                heatingVoltage = Heating Battery

                supplyVoltage = Supply Voltage

                referenceVoltage = Reference Voltage

        

        [[[Almanac]]]

            

            # The labels to be used for the phases of the moon:

            moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, Full, Waning gibbous, Last quarter, Waning crescent

    #

    ################################################################################

    

    [[Weather34Report]]

        skin = Weather34

        HTML_ROOT = /var/www/html/weewx/weather34/

        [[[Units]]]

            [[[[Groups]]]]

                group_altitude = meter

                group_degree_day = degree_C_day

                group_pressure = hPa

                group_rain = mm

                group_rainrate = mm_per_hour

                group_speed = meter_per_second

                group_speed2 = meter_per_second2

                group_temperature = degree_C

    #

    ################################################################################

    

    [[w34Highcharts]]

        HTML_ROOT = /var/www/html/weewx/weather34/w34highcharts

        skin = w34Highcharts

        enable = true

        [[[CheetahGenerator]]]

            [[[[ToDate]]]]

                [[[[[YearJSON]]]]]

                    stale_age = 600

        [[[Units]]]

            [[[[StringFormats]]]]

                centibar = %.0f

                cm = %.2f

                cm_per_hour = %.2f

                degree_C = %.1f

                degree_F = %.1f

                degree_compass = %.0f

                foot = %.0f

                hPa = %.1f

                inHg = %.3f

                inch = %.2f

                inch_per_hour = %.2f

                km_per_hour = %.0f

                km_per_hour2 = %.1f

                knot = %.0f

                knot2 = %.1f

                mbar = %.1f

                meter = %.0f

                meter_per_second = %.1f

                meter_per_second2 = %.1f

                mile_per_hour = %.0f

                mile_per_hour2 = %.1f

                mm = %.1f

                mmHg = %.1f

                mm_per_hour = %.1f

                percent = %.0f

                uv_index = %.1f

                volt = %.1f

                watt_per_meter_squared = %.0f

                NONE = N/A

            [[[[Labels]]]]

                centibar = cb

                cm = cm

                cm_per_hour = cm/hr

                degree_C = ° C

                degree_F = ° F

                degree_compass = °

                foot = feet

                hPa = hPa

                inHg = inHg

                inch = in

                inch_per_hour = in/hr

                km_per_hour = km/hr

                km_per_hour2 = km/hr

                knot = knots

                knot2 = knots

                mbar = mbar

                meter = meters

                meter_per_second = m/s

                meter_per_second2 = m/s

                mile_per_hour = mph

                mile_per_hour2 = mph

                mm = mm

                mmHg = mmHg

                mm_per_hour = mm/hr

                percent = %

                uv_index = Index

                volt = V

                watt_per_meter_squared = W/m²

                NONE = ""

        [[[Extras]]]

            numYears = 5

            [[[[MinRange]]]]

                outTemp = 10, degree_C

                windchill = 10, degree_C

                barometer = 20, hPa

                windSpeed = 10

                rain = 5, mm

                radiation = 500

                UV = 16

            [[[[WindRose]]]]

                title = Wind Rose

                source = windSpeed

                period = 3600, 86400, 604800, month, year

                aggregate_type = ""

                aggregate_interval = ""

                petals = 16

                petal_colors = aqua, 0x0099FF, 0x0033FF, 0x009900, 0x00CC00, 0x33FF33, 0xCCFF00

                speedfactor = 0.0, 0.1, 0.2, 0.3, 0.5, 0.7, 1.0

                legend_title = True

                band_percent = True

                bullseye_percent = True

                precision = 1

                bullseye_size = 20

                bullseye_color = 0xFFFACD

                calm_limit = 0.1


##############################################################################


#   This service acts as a filter, converting the unit system coming from

#   the hardware to a unit system in the database.


[StdConvert]

    

    # The target_unit affects only the unit system in the database. Once

    # chosen it cannot be changed without converting the entire database.

    # Modification of target_unit after starting weewx will result in

    # corrupt data - the database will contain a mix of US and METRIC data.

    #

    # The value of target_unit does not affect the unit system for

    # reporting - reports can display US, Metric, or any combination of units.

    #

    # In most cases, target_unit should be left as the default: US

    #

    # In particular, those migrating from a standard wview installation

    # should use US since that is what the wview database contains.

    

    # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING!

    target_unit = METRIC    # Options are 'US', 'METRICWX', or 'METRIC'


##############################################################################


#   This section can adjust data using calibration expressions.


[StdCalibrate]

    

    [[Corrections]]

        # For each type, an arbitrary calibration expression can be given.

        # It should be in the units defined in the StdConvert section.

        # Example:

        foo = foo + 0.2


##############################################################################


#   This section is for quality control checks. If units are not specified,

#   values must be in the units defined in the StdConvert section.


[StdQC]

    

    [[MinMax]]

        barometer = 26, 32.5, inHg

        pressure = 24, 34.5, inHg

        outTemp = -40, 120, degree_F

        inTemp = 10, 120, degree_F

        outHumidity = 0, 100

        inHumidity = 0, 100

        windSpeed = 0, 120, mile_per_hour

        rain = 0, 10, inch


##############################################################################


#   This section controls the origin of derived values.


[StdWXCalculate]

    

    [[Calculations]]

        # How to calculate derived quantities.  Possible values are:

        #  hardware        - use the value provided by hardware

        #  software        - use the value calculated by weewx

        #  prefer_hardware - use value provide by hardware if available,

        #                      otherwise use value calculated by weewx

        

        pressure = prefer_hardware

        altimeter = prefer_hardware

        appTemp = prefer_hardware

        barometer = prefer_hardware

        cloudbase = prefer_hardware

        dewpoint = prefer_hardware

        ET = prefer_hardware

        heatindex = prefer_hardware

        humidex = prefer_hardware

        inDewpoint = prefer_hardware

        maxSolarRad = prefer_hardware

        rainRate = prefer_hardware

        windchill = prefer_hardware

        windrun = prefer_hardware


##############################################################################


#   For hardware that supports it, this section controls how often the

#   onboard clock gets updated.


[StdTimeSynch]

    

    # How often to check the weather station clock for drift (in seconds)

    clock_check = 14400

    

    # How much it can drift before we will correct it (in seconds)

    max_drift = 5


##############################################################################


#   This section is for configuring the archive service.


[StdArchive]

    

    # If the station hardware supports data logging then the archive interval

    # will be downloaded from the station. Otherwise, specify it (in seconds).

    archive_interval = 300

    

    # If possible, new archive records are downloaded from the station

    # hardware. If the hardware does not support this, then new archive

    # records will be generated in software.

    # Set the following to "software" to force software record generation.

    record_generation = hardware

    

    # Whether to include LOOP data in hi/low statistics

    loop_hilo = True

    

    # The data binding used to save archive records

    data_binding = wx_binding


##############################################################################


#   This section binds a data store to a database.


[DataBindings]

    

    [[wx_binding]]

        # The database must match one of the sections in [Databases].

        # This is likely to be the only option you would want to change.

        database = archive_mysql

        # The name of the table within the database

        table_name = archive

        # The manager handles aggregation of data for historical summaries

        manager = weewx.manager.DaySummaryManager

        # The schema defines the structure of the database.

        # It is *only* used when the database is created.

        schema = schemas.wview_extended.schema


##############################################################################


#   This section defines various databases.


[Databases]

    

    # A SQLite database is simply a single file

    [[archive_sqlite]]

        database_name = weewx.sdb

        database_type = SQLite

    

    # MySQL

    [[archive_mysql]]

        database_name = weewx

        database_type = MySQL


##############################################################################


#   This section defines defaults for the different types of databases.


[DatabaseTypes]

    

    # Defaults for SQLite databases

    [[SQLite]]

        driver = weedb.sqlite

        # Directory in which the database files are located

        SQLITE_ROOT = /home/weewx/archive

    

    # Defaults for MySQL databases

    [[MySQL]]

        driver = weedb.mysql

        # The host where the database is located

        host = localhost

        # The user name for logging in to the host

        user = XXX obfuscated by wee_debug XXX

        # The password for the user name (quotes guard against parsing errors)

        password = XXX obfuscated by wee_debug XXX


##############################################################################


#   This section configures the internal weewx engine.


[Engine]

    

    # The following section specifies which services should be run and in what order.

    [[Services]]

        prep_services = weewx.engine.StdTimeSynch

        data_services = ,

        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate, user.weather34.Weather34RealTime, user.crt.CumulusRealTime

        xtype_services = weewx.wxxtypes.StdWXXTypes, weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater

        archive_services = weewx.engine.StdArchive

        restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS

        report_services = weewx.engine.StdPrint, weewx.engine.StdReport

#

################################################################################


[Weather34RealTime]

    filename = /var/www/html/weewx/weather34/serverdata/w34realtime.txt

    unit_system = METRICWX

    exclude_fields = rain

    cache_enable = True

    cache_directory = /tmp

    cache_stale_time = 900

    weewx_port = 25252

    webserver_address = ""

    weewxserver_address = ""

    weewx_file_transfer = ""

#

################################################################################


# Air quality, your own latitude, longitude, token and interval in seconds are required

# Dark Sky, your own latitude, longitude, API key, language, units and interval in seconds required

# DarkSky Units key us = US Units, ca = METRIC Units, si = METRICWX Units, uk2 = UK(metric with mph) Units

# Example https://api.forecast.io/forecast/yourtokenhere/51.94,-0.987?lang=en&units=uk2

# Weather Underground, your own latitude, longitude, API key, language, units and interval in seconds required

# Weather Underground Units key e = US, m = METRIC, s = SI(with m/s Scandinavia), h = UK(with mph)

# Example https://api.weather.com/v3/wx/forecast/daily/5day?geocode=51.94,-0.987&language=en&format=json&units=h&apiKey=yourapikeyhere

# Earthquake reports interval in seconds required

# K-Index reports interval in seconds required

# Metar reports airport code, API Key and interval in seconds required

# Example https://api.checkwx.com/metar/EGTK/decoded

# Example X-API-Key:yourapikeyhere

# Purpleair reports device ID and interval in seconds required

# Example https://www.purpleair.com/json?show=38365

# Meteoalrm European weather warnings country code, region code and interval in seconds required

# Example http://192.168.1.232/weewx/weather34/eualert.php?country=UK&region=013

# Select the services you require by creating a string of the services above

# Example services = ds.me.eq.ki.wu.aq.al.ah.ao.aa.pu

# Select your prefered time interval in seconds for each service


[Weather34WebServices]

    aq_url = https://api.waqi.info/feed/geo:42.634585;14.040554/?token=

    aq_interval = 3600

    aq_filename = /var/www/html/weewx/weather34/jsondata/aqi.txt

    ds_url = https://api.forecast.io/forecast//42.634585, 14.040554?lang=it&units=si

    ds_interval = 900

    ds_filename = /var/www/html/weewx/weather34/jsondata/darksky.txt

    wu_url = https://api.weather.com/v3/wx/forecast/daily/5day?geocode=42.634585, 14.040554&language=it&format=json&units=m&apiKey=9c25d20f3c0b4f0fa5d20f3c0bcf0f07

    wu_interval = 900

    wu_filename = /var/www/html/weewx/weather34/jsondata/wuforecast.txt

    eq_url = https://earthquake-report.com/feeds/recent-eq?json

    eq_interval = 900

    eq_filename = /var/www/html/weewx/weather34/jsondata/eqnotification.txt

    ki_url = https://services.swpc.noaa.gov/products/geospace/planetary-k-index-dst.json

    ki_interval = 43200

    ki_filename = /var/www/html/weewx/weather34/jsondata/kindex.txt

    me_url = https://api.checkwx.com/metar/LIBP/decoded

    me_header = X-API-Key:a5e31a55e3b5ffbe33dcda3e31

    me_interval = 900

    me_filename = /var/www/html/weewx/weather34/jsondata/metar34.txt

    pu_url = https://www.purpleair.com/json?show=

    pu_interval = 3600

    pu_filename = /var/www/html/weewx/weather34/jsondata/purpleair.txt

    al_url = http://192.168.178.31/weewx/weather34/eualert.php?country=IT&region=013

    al_interval = 900

    al_filename = /var/www/html/weewx/weather34/jsondata/meteoalarm.txt

    services = me.ki.wu.al

#

################################################################################


# Apply your own latitude and longitude and continent to the URLs in this section


[Weather34CloudCover]

    enable = True

    db_field = signal8

    cc_interval = 300

    cc1_url = https://api.sat24.com/crop?type=visual5hdcomplete&lat=42.634585&lon=14.040554&width=300&height=300&zoom=1.00&continent=eu

    cc1_filename = /tmp/sat1.png

    cc2_url = https://api.sat24.com/crop?type=infraPolair&lat=42.634585&lon=14.040554&width=300&height=300&zoom=1.00&continent=eu

    cc2_filename = /tmp/sat2.png


##############################################################################


# Options for extension 'crt'

[CumulusRealTime]

    filename = /var/tmp/realtime.txt

    unit_system = METRIC


wee_debug report successfully generated

Tom Keffer

unread,
Dec 17, 2020, 2:05:20 PM12/17/20
to weewx-user
1. The utility 'free' must be run repeatedly, particularly around the time weewxd starts failing. Is the amount of free memory dropping? Running it just once will tell you very little.

2. I am not familiar with that logger, but it looks like a clone of the original Davis logger. They may have gotten the CRC calculations wrong. Ask the vendor.

3. Google searching the error "PIL.Image: Error closing: 'Image' object has no attribute 'fp'", it seems to be a common error in lots of contexts. The offending code is in Pillow's file Image.py:

       try:
            if hasattr(self, "_close__fp"):
                self._close__fp()
            if self.fp:
                self.fp.close()
            self.fp = None
        except Exception as msg:
            logger.debug("Error closing: %s", msg)


The highlighted code is probably causing the error. It may be caused by closing an Image object that was never opened. I suspect one of your skins is doing this. It seems to be harmless.

-tk


Mauro De Lauretis

unread,
Dec 17, 2020, 3:46:55 PM12/17/20
to weewx-user
1. Yes, the amount of available memory is dropping because different of the value I watched a couple of hours before.

2. I don't think it's due a wrong calculation, because how I mentioned before, it's the first time I see this CRC error since I'm this logger.

3. So you think I can ignore it?

Greetings

Mauro




Tom Keffer

unread,
Dec 17, 2020, 4:02:44 PM12/17/20
to weewx-user
1. Yes, it's dropping, but by how much? If it's a tiny percentage, it won't matter. If you're losing half your memory every hour it will matter a great deal.
2. In the 13 years I have been doing this, I have never seen a consistent CRC error. You'll occasionally see a single error, but 4 in a row? Never. How often does this happen?
3. Yes, I think you can safely ignore this error. 

-tk

Mauro De Lauretis

unread,
Dec 18, 2020, 9:09:58 AM12/18/20
to weewx-user
Hello Tom,

1. I think it is close to half of the memory, because my Weewx stopped again to report after 8-9 hours of a restart. Sorry that I can't be more accurate, but I'm the whole day at work.
2. I have to admit, it happens very often now. Maybe the data logger is going to break? It has more than 4 years.

Greetings
Mauro

Tom Keffer

unread,
Dec 18, 2020, 10:36:05 AM12/18/20
to weewx-user
2. I would definitely look at the logger. Try reseating it. Try putting some ferrite coils on the cable. 

Mauro De Lauretis

unread,
Dec 18, 2020, 3:01:24 PM12/18/20
to weewx-user
It's definitely what I was afraid of.
Thank you anyway for your help, Tom.

But, is there a correlation between decrease of memory and logger?

Tom Keffer

unread,
Dec 18, 2020, 5:58:58 PM12/18/20
to weewx-user
I would not think so. I think they are two independent things, but one never knows. Are you still getting CRC errors?

Another thing to try is to remove most of your services, then run weewxd. See if it has difficulty launching threads. If not, add the services back on, one at a time, until the problems start.

-tk

Mauro De Lauretis

unread,
Dec 19, 2020, 6:05:20 AM12/19/20
to weewx-user
Yes, I am m still getting the CRC errors.
At the moment I can't solve the problem of the logger because I'm abroad for work till the end of March, so I use to manage the RPi via SSH.

I will try to remove my services and add them back one at a time to look what happens.
If nothing changes, should I try a reinstall of weewx or the only skin?

Thank you in advance, Tom.
Your efforts are highly appreciated.

Mauro

Mauro De Lauretis

unread,
Dec 22, 2020, 5:50:01 PM12/22/20
to weewx-user
Hi Tom,
I'm coming back to my issue.
I'm thinking the problem isn't really my data logger, but maybe the web services of the weather34 template that are using python and customized in weewx.conf.
I had they disabled for the last two days and as a "miracle", I didn't receive any CRC Error on the syslog. Now that I've tried to activate them again, I get the CRC Errors as usual.

Best regards
Mauro

Il giorno mercoledì 16 dicembre 2020 alle 15:28:09 UTC+1 tke...@gmail.com ha scritto:

Tom Keffer

unread,
Dec 22, 2020, 6:27:07 PM12/22/20
to weewx-user
Does not surprise me. Clearly, your logger is not acting like a Davis manufactured logger.

Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages