Problems reading values from WMR-89

82 views
Skip to first unread message

T H

unread,
Sep 11, 2018, 5:03:51 AM9/11/18
to weewx-user
Hi, I'm having problems with a lot of missing values from my WMR-89, and I'm looking for ideas on how to solve/troubleshoot it.

After my WH1080 stopped talking to my computer (display still works fine though) I purchased an Oregeon Scientific WMR-89 as it seemed supported by weewx and allowed me to place different sensors at different locations as they are all wireless.

Initially (the first hours) it seemed to work well, but sometimes when I reloaded the file:///var/www/weewx/index.html file I'd see "N/A" at most values under Current Conditions except for Inside Temperature which seems to work well.

Now, after running for about a week, it's worse. I get N/A pretty much all the time, and the graphs show just a few dots here and there for temperature where values have been successfully read. Wind seems to work better, with fewer read errors, but it's not perfect.

The WMR-89's display shows values for wind, temperature, rain etc. all the time, it's just that weewx seems to have difficulties reading them.

The outside temperature/humidity sensor is about 10 meters (30 feet) from the display, with a few wood walls inbetween. The wind sensor is about 9 meters away on top of a 2-story house with tiled roof, almost directly above the display, with the display on the ground floor. The rain gauge is about 5 meters from the display, with one wood wall and a desk inbetween.

As I wrote above, the display shows values all the time so it's not having problems receiving data from the sensors, it's just that weewx seems to have problems reading values from the display.

Running weewx 3.2.1 under Linux 4.18.5.


Relevant(?) config file lines below:

debug = 1
version = 3.2.1
[Station]
    station_type = WMR89
[Engine]
    [[Services]]
        prep_services = weewx.engine.StdTimeSynch
        data_services = ,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
        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
[WMR89]
    model = WMR89
    driver = weewx.drivers.wmr89
    type = serial
    product_id = 0xca0a
    port = /dev/ttyUSB1


I installed following instructions found in the "Looking for help with Oregon Scientific WMR 89" thread (started on Jan 3 2018):

vi /etc/modules
        # add cp210x
modprobe cp210x
lsmod
/etc/init.d/weewx stop
echo 0fde ca0a > /sys/bus/usb-serial/drivers/cp210x/new_id
vi /etc/init.d/weewx
        # append "echo 0fde ca0a > /sys/bus/usb-serial/drivers/cp210x/new_id" line into do_start function
cd /usr/share/weewx/weewx/drivers/
vi /etc/weewx/weewx.conf
        # see above
/etc/init.d/weewx start


There are no weewx errors reported to /var/log/{debug,syslog,kern.log,messages,user.log} etc.. A few lines from my /var/log/debug file follows:

Sep 11 10:52:37 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b50b0000f500310dfd02f0
Sep 11 10:52:46 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b00c0b08000e010a0c0700fb
Sep 11 10:52:47 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b00c0b08000e010a0c0700fb
Sep 11 10:53:36 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b50b0000f500310dfd02f0
Sep 11 10:53:36 weather-pc weewx[2846]: reportengine: Running reports for latest time in the database.
Sep 11 10:53:36 weather-pc weewx[2846]: reportengine: Running report StandardReport
Sep 11 10:53:36 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Standard/skin.conf for report StandardReport
Sep 11 10:53:37 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b50b0000f500310dfd02f0
Sep 11 10:53:38 weather-pc weewx[2846]: reportengine: copied 0 files to /var/www/weewx
Sep 11 10:53:38 weather-pc weewx[2846]: reportengine: Running report FTP
Sep 11 10:53:38 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Ftp/skin.conf for report FTP
Sep 11 10:53:38 weather-pc weewx[2846]: reportengine: FTP upload not requested. Skipped.
Sep 11 10:53:38 weather-pc weewx[2846]: reportengine: Running report RSYNC
Sep 11 10:53:38 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Rsync/skin.conf for report RSYNC
Sep 11 10:53:38 weather-pc weewx[2846]: reportengine: rsync upload not requested. Skipped.
Sep 11 10:53:46 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b00c0b08000e010a0c0800fc
Sep 11 10:53:47 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b00c0b08000e010a0c0800fc
Sep 11 10:53:54 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b11100000000000000b20e01010c000190
Sep 11 10:53:55 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b11100000000000000b20e01010c000190
Sep 11 10:54:37 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b50b0000f500310dfd02f0
Sep 11 10:54:37 weather-pc weewx[2846]: reportengine: Running reports for latest time in the database.
Sep 11 10:54:37 weather-pc weewx[2846]: reportengine: Running report StandardReport
Sep 11 10:54:37 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Standard/skin.conf for report StandardReport
Sep 11 10:54:37 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b50b0000f500310dfd02f0
Sep 11 10:54:38 weather-pc weewx[2846]: reportengine: copied 0 files to /var/www/weewx
Sep 11 10:54:38 weather-pc weewx[2846]: reportengine: Running report FTP
Sep 11 10:54:38 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Ftp/skin.conf for report FTP
Sep 11 10:54:38 weather-pc weewx[2846]: reportengine: FTP upload not requested. Skipped.
Sep 11 10:54:38 weather-pc weewx[2846]: reportengine: Running report RSYNC
Sep 11 10:54:38 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Rsync/skin.conf for report RSYNC
Sep 11 10:54:38 weather-pc weewx[2846]: reportengine: rsync upload not requested. Skipped.
Sep 11 10:54:46 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b00c0b08000e010a0c0900fd
Sep 11 10:54:47 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b00c0b08000e010a0c0900fd
Sep 11 10:55:28 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b11100000000000000b20e01010c000190
Sep 11 10:55:28 weather-pc weewx[2846]: reportengine: Running reports for latest time in the database.
Sep 11 10:55:28 weather-pc weewx[2846]: reportengine: Running report StandardReport
Sep 11 10:55:28 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Standard/skin.conf for report StandardReport
Sep 11 10:55:29 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b11100000000000000b20e01010c000190
Sep 11 10:55:29 weather-pc weewx[2846]: reportengine: copied 0 files to /var/www/weewx
Sep 11 10:55:29 weather-pc weewx[2846]: reportengine: Running report FTP
Sep 11 10:55:29 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Ftp/skin.conf for report FTP
Sep 11 10:55:29 weather-pc weewx[2846]: reportengine: FTP upload not requested. Skipped.
Sep 11 10:55:29 weather-pc weewx[2846]: reportengine: Running report RSYNC
Sep 11 10:55:29 weather-pc weewx[2846]: reportengine: Found configuration file /etc/weewx/skins/Rsync/skin.conf for report RSYNC
Sep 11 10:55:29 weather-pc weewx[2846]: reportengine: rsync upload not requested. Skipped.
Sep 11 10:55:36 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b50b0000f500310dfd02f0
Sep 11 10:55:37 weather-pc weewx[2846]: wmr89: Received WMR89 data packet: b50b0000f500310dfd02f0


Any ideas?

Thanks,

Thomas Keffer

unread,
Sep 11, 2018, 8:01:40 AM9/11/18
to weewx-user
The WMR89 is a partial packet station, which means not all observation types get reported with every packet. You are using a short archive interval (60 seconds). Add that with a marginal battery, and it's possible that a value is not being received in the 60 seconds you are giving it.

The console will continue to display values because it is showing older values, left over from long-gone packets.

A few things to try:
  1. Run weewxd directly from the command line and watch how often you see the missing values. I'm betting you will have to wait longer than 60 seconds for some of them.
  2. Change the archive interval to 5 minutes.
  3. Change your batteries, or move the sensors to closer locations, where they won't be as sensitive to marginal batteries.
-tk


--
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.
For more options, visit https://groups.google.com/d/optout.

dani.mac...@gmail.com

unread,
Sep 11, 2018, 8:26:46 AM9/11/18
to weewx-user
Hi,

I am also running a WMR89 with fcauwe drivers. I don't see any error in your log messages. This station sends some data in a low pace. For instance, the barometric pressure (data packet b4) is sent every 15 minutes. Just increase the archive interval to 15 minutes and you will not see this N/A.

Regards,

Daniel

T

unread,
Sep 11, 2018, 1:18:03 PM9/11/18
to weewx...@googlegroups.com
Hi, thanks for replying.

I assume it's the archive_interval variable in [StdArchive] you
suggest I should change, is that correct?

So if I understand correctly, the display is showing values that can
be as old as 15 minutes (barometric pressure).

And when weewx asks the display unit for values, instead of replying
with whatever the display unit last recorded for barometric pressure,
outside temperature etc., it'll reply with N/A if it hasn't received a
new value from a sensor since the last time weewx asked? Is that
correct?

Or is it that weewx is receiving (not asking for) values at whatever
pace the display unit sends them, and when weewx's archive interval
triggers twice (or more) between receiving two values from the display
unit, it'll record N/A for all but the first time?

I'd appreciate an explanation of how that works, because I don't
understand how N/A can be recorded. Why isn't the last received/polled
value recorded, even if it's 15 minutes old? And why do I get so very
few outside temperature readings? I'm attaching a recent graph showing
how extremely sporadic outside temperature values are recorded.

Thanks,
daytempdew.png

T

unread,
Sep 11, 2018, 1:22:52 PM9/11/18
to weewx...@googlegroups.com
Hi, thanks for replying.

The batteries are brand new, just been used a week. And at 10m (30ft)
the signal really should be able to penetrate a few wood walls,
shouldn't it?

Your suggestion regarding archive interval, is that the
archive_interval variable in [StdArchive] you suggest I change? In
the config file for my old WH1080 I see a polling_interval variable
that's not present in the WMR89 config section.

I ran weewx from the command line for 17 minutes using this command:
python /usr/bin/weewxd /etc/weewx/weewx.conf
and I'm attaching the output.

Weird that the timestamps in the output aren't always in order, that
some RECs have a lower time value than the preceding line.

After seeing that log, do you still suspect the archive interval, or
something else?

Thanks,
weewx-output.txt

Thomas Keffer

unread,
Sep 11, 2018, 2:30:07 PM9/11/18
to weewx-user
To answer your questions:

It doesn't work that way. The WMR89 just sends data. WeeWX doesn't request anything. The data it sends is whatever is in the most recent packet it received from your sensors.

WeeWX accumulates this data over an archive interval, then when the interval is over, calculates the archive record from it. This is what is in REC. If no data has been received from a sensor during the archive interval, then WeeWX has no choice but to emit what is effectively "N/A" (it actually uses the Python value "None").

The REC timestamps can be slightly earlier than some LOOP packets because the calculations described above are delayed a bit, an "archive_delay" interval, usually 15 seconds. 

From your output log, not a single value of outTemp nor outHumidity was received during the 17 minutes you accumulated it. By contrast, there are lots of windSpeeds. So, I'd say you have a problem with either the temperature/humidity sensor, its batteries, or too many walls between the console and the sensor. If you're seeing something on the console, it must be very old data that happened to get through in a lucky moment.

-tk

Dani Macías Perea

unread,
Sep 12, 2018, 3:04:11 AM9/12/18
to weewx...@googlegroups.com
Thomas has already answered your questions. In the logs you have sent I have not seen any outside temperature data packet. It should start with b50b01. According to the graph attached, you are getting outside temperature in bunches and sporadically.  My guess is that there is some kind of connection problem between your central unit and the outside temperature sensor. It should report the temperature every 100 seconds (more or less). The central unit can show old data (if nothing is received) but after a few minutes the last received value will be replaced by a hyphen.

Some ideas:
  • Although you said they are new, consider replacing the batteries of the sensor once again. 
  • Change the RF channel used by the sensor.
  • Use a plugged DC adaptor to power up the central unit. It will improve the transmission range as the circuit ground also is a part of the antenna.
  • Try to move the unit away from RF noise sources or metallic elements that may introduce interferences. WiFi access points, fluorescent light ballasts, LED lamps and TV are potential noise sources. In general, all consumer electronics devices can generate noise, so just try to move your central unit to different places in your house and observe if you get new signal drops. You can test it by using the SEARCH button in the unit and waiting a couple of minutes. If the outside temperature is still blinking, there should be some interference/problem.

> To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "weewx-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/weewx-user/RFb6WaT6cMg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to weewx-user+unsubscribe@googlegroups.com.

T

unread,
Sep 15, 2018, 8:24:22 AM9/15/18
to weewx...@googlegroups.com
Hi,

So I think I've got it all figured out now, and thought I'd post here
so that anyone else facing similar problems might benefit from my
findings.

It turned out I had both connection problems between the outdoor
temperature/humidity sensor and the WMR89, and a problem with the
archive_interval setting.

I had moved the WMR89 about 3 feet, from the test/setup position on
top of my computer to a shelf closer to the floor, since in the
original placement the indoor temperature values were too high due to
exhaust heat from my computer (plus I can't have it permanently on the
computer anyways). On that lower shelf there was stuff on the side to
block the signal from the outdoor temperature/humidity sensor. There's
also a door in my home that's closed/opened depending on whether I'm
home/away/sleeping etc., which could interfere with the signal. It's a
bit strange though that the wind sensor signal got through to the WMR8
on that shelf, since when sitting on the shelf there were 6 shelves of
books (plus ceiling, tiles etc.) between the WMR89 and the wind
sensor, compared to only the ceiling, tiles etc. when positioned on
top of the computer. I've now found a better permament placement for
the WMR89. Will have to find a new location for the outdoor sensor,
from a measurement viewpoint the current location is perfect (away
from the outer wall, always in shadow etc.) but from a signal strength
viewpoint it's not optimal.

The archive interval was indeed too short. Increasing it to 5 minutes
(300 seconds) made all N/A values except barometer disappear
(barometer was N/A for 10 minutes, a value for 5 minutes, and so on),
and increasing it further to 900 seconds has made the N/A values
disappear completely. As a bonus, the graphs showing wind readings are
now "calmer", since I assume there is only one value being archived
per 15 minutes, instead of 15, and the wind direction sensor can flap
around quite a bit but now it seems weewx calculates a mean value over
those 15 minutes and stores/graphs that instead of 15 different
values.

Thanks to both Dani and Thomas for helping me fix this.
>> > To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to a topic in the Google Groups "weewx-user" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/topic/weewx-user/RFb6WaT6cMg/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to weewx-user+...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages