I did get my WMR89 this monday for replacement for 5 years old WMR88, which 
starts to shown some defunction features.  
oon appeared that direct replacement was not possible. I found this 
fcauwe's driver and instruction to modify cp210x-driver. I changed cp210x 
source code 
from 
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
 
to recognize WMR89, compiled and installed it. Now loading module creates 
/dev/ttyUSB0.
In weewx.conf I added this:

[WMR89]
    # This section is for the Oregon Scientific WMR100
    
    # The driver to use
    #driver = user.wmr89
    driver = weewx.drivers.wmr89
    
    # The station model, e.g., WMR100, WMR100N, WMRS200
    model = WMR89
    
    type = serial
    product_id = 0xca0a
    port = /dev/ttyUSB0

It did not work before I added "type=serial"
Driver should use these parameters as default. I found this 
"type"-parameter by reading driver code.
After these, driver worked, but I have two extra temperature sensors. 
Temperature packet in driver is like this:

if (packet[2].encode('hex')=='00'):
          _record = {
            'humidity_in': hum,
            'temperature_in': float(temp),
            'dewpoint_in': dew,
            'dateTime': int(time.time() + 0.5),
            'usUnits': weewx.METRIC
          }
        elif (packet[2].encode('hex')=='01'):
          _record = {
            'humidity_out': hum,
            'temperature_out': float(temp),
            'dewpoint_out': dew,
            'dateTime': int(time.time() + 0.5),
            'usUnits': weewx.METRIC
          }

I did add this:
elif (packet[2].encode('hex')=='02'):
          _record = {
            'humidity_1': hum,
            'temperature_1': float(temp),
            'dewpoint_1': dew,
            'dateTime': int(time.time() + 0.5),
            'usUnits': weewx.METRIC
          }
        elif (packet[2].encode('hex')=='03'):
          _record = {
            'humidity_2': hum,
            'temperature_2': float(temp),
            'dewpoint_2': dew,
            'dateTime': int(time.time() + 0.5),
            'usUnits': weewx.METRIC
          }

Now everything is working, except barometer data is quite often missing. 

         Timo

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

Reply via email to