Bob, no reason not to use WeeWX --- just write a driver. At their simplest,
you need implement only 3 functions, two of which are trivial. The hard one
is genLoopPackets(), whose job is to return Python dictionaries holding any
data returned by your station. See the section *Porting to new hardware
<http://www.weewx.com/docs/customizing.htm#porting>* in the Customizing
Guide for details.

Once you have a driver, you can leverage everything else WeeWX has to offer
--- archiving, reporting, uploading, HTML generation, etc.

-tk

On Sun, Feb 9, 2020 at 3:29 AM Bob Atchley <bob.atch...@gmail.com> wrote:

> The good news is I have reverse engineered the USB interface to this
> weather station, and while there are still nuances and additional commands
> to be understood I have a test program running reliably.
>
> As there has been no interest here I'll probably write my own solution for
> this rather than go down the weewx route, but once polished I'll make my
> solution available (but I could still be persuaded to go down the weewx
> route).
>
> The only other weather station interface that I am familiar with is the
> ws2300 - compared to that this weather station interface is orders of
> magnitude simpler and more reliable
>
> Not expecting any responses, but if there is any interest let me know
>
> Bob
>
> On Friday, 3 January 2020 18:20:49 UTC, Bob Atchley wrote:
>>
>> Hi,
>>
>> Has anyone had any luck interfacing weewx (on a rpi) to this weather
>> station (which is identical to the Bresser 6 in 1) and if so could you give
>> me any pointers ?
>>
>> https://youshiko.co.uk/collections/digital-weather-stations/products/yc9388
>>
>> My basic assumption is that this is a Fine Offset clone.
>>
>> The fundamental problem I'm having is with the USB interface
>>
>> $ lsusb  -v -d 1941:8021
>>
>> *Bus 001 Device 004: ID 1941:8021 Dream Link WH1080 Weather Station / USB
>> Missile Launcher*
>> *Device Descriptor:*
>> *  bLength                18*
>> *  bDescriptorType         1*
>> *  bcdUSB               2.00*
>> *  bDeviceClass            0 *
>> *  bDeviceSubClass         0 *
>> *  bDeviceProtocol         0 *
>> *  bMaxPacketSize0        64*
>> *  idVendor           0x1941 Dream Link*
>> *  idProduct          0x8021 WH1080 Weather Station / USB Missile
>> Launcher*
>> *  bcdDevice            0.00*
>> *  iManufacturer           1 Silicon Laboratories Inc.*
>> *  iProduct                2 CCLEL C8488*
>> *  iSerial                 3 CCLEL c8488*
>> *  bNumConfigurations      1*
>> *  Configuration Descriptor:*
>> *    bLength                 9*
>> *    bDescriptorType         2*
>> *    wTotalLength       0x0022*
>> *    bNumInterfaces          1*
>> *    bConfigurationValue     1*
>> *    iConfiguration          0 *
>> *    bmAttributes         0xc0*
>> *      Self Powered*
>> *    MaxPower              100mA*
>> *    Interface Descriptor:*
>> *      bLength                 9*
>> *      bDescriptorType         4*
>> *      bInterfaceNumber        0*
>> *      bAlternateSetting       0*
>> *      bNumEndpoints           1*
>> *      bInterfaceClass         3 Human Interface Device*
>> *      bInterfaceSubClass      0 *
>> *      bInterfaceProtocol      1 Keyboard*
>> *      iInterface              0 *
>> *        HID Device Descriptor:*
>> *          bLength                 9*
>> *          bDescriptorType        33*
>> *          bcdHID               1.11*
>> *          bCountryCode            0 Not supported*
>> *          bNumDescriptors         1*
>> *          bDescriptorType        34 Report*
>> *          wDescriptorLength      36*
>> *          Report Descriptor: (length is 36)*
>> *            Item(Global): Usage Page, data= [ 0x00 0xff ] 65280*
>> *                            (null)*
>> *            Item(Local ): Usage, data= [ 0x01 ] 1*
>> *                            (null)*
>> *            Item(Main  ): Collection, data= [ 0x01 ] 1*
>> *                            Application*
>> *            Item(Local ): Usage Minimum, data= [ 0x01 ] 1*
>> *                            (null)*
>> *            Item(Local ): Usage Maximum, data= [ 0x08 ] 8*
>> *                            (null)*
>> *            Item(Global): Logical Minimum, data= [ 0x00 ] 0*
>> *            Item(Global): Logical Maximum, data= [ 0xff ] 255*
>> *            Item(Global): Report Count, data= [ 0x40 ] 64*
>> *            Item(Global): Report Size, data= [ 0x08 ] 8*
>> *            Item(Main  ): Input, data= [ 0x02 ] 2*
>> *                            Data Variable Absolute No_Wrap Linear*
>> *                            Preferred_State No_Null_Position
>> Non_Volatile Bitfield*
>> *            Item(Local ): Usage Minimum, data= [ 0x01 ] 1*
>> *                            (null)*
>> *            Item(Local ): Usage Maximum, data= [ 0x08 ] 8*
>> *                            (null)*
>> *            Item(Global): Logical Minimum, data= [ 0x00 ] 0*
>> *            Item(Global): Logical Maximum, data= [ 0xff ] 255*
>> *            Item(Global): Report Count, data= [ 0x08 ] 8*
>> *            Item(Global): Report Size, data= [ 0x08 ] 8*
>> *            Item(Main  ): Output, data= [ 0x02 ] 2*
>> *                            Data Variable Absolute No_Wrap Linear*
>> *                            Preferred_State No_Null_Position
>> Non_Volatile Bitfield*
>> *            Item(Main  ): End Collection, data=none*
>> *      Endpoint Descriptor:*
>> *        bLength                 7*
>> *        bDescriptorType         5*
>> *        bEndpointAddress     0x81  EP 1 IN*
>> *        bmAttributes            3*
>> *          Transfer Type            Interrupt*
>> *          Synch Type               None*
>> *          Usage Type               Data*
>> *        wMaxPacketSize     0x0040  1x 64 bytes*
>> *        bInterval               1*
>> *can't get device qualifier: Resource temporarily unavailable*
>> *can't get debug descriptor: Resource temporarily unavailable*
>> *Device Status:     0x0001*
>> *  Self Powered*
>>
>>
>> Running wee_ device works, but the values returned are all defaults not
>> what the console is displaying.
>>
>> $ sudo bin/wee_device --info
>>
>> *Using configuration file /home/weewx/weewx.conf*
>> *Using FineOffsetUSB driver version 1.20 (weewx.drivers.fousb)*
>> *Querying the station...*
>> *Fine Offset station settings:*
>> *                    local time: 2020.01.03 17:47:03 GMT*
>> *                  polling mode: PERIODIC*
>>
>> *                  abs_pressure: 0*
>> *                   current_pos: 0*
>> *                  data_changed: 0*
>> *                    data_count: 0*
>> *                     date_time: 2000-00-00 00:00*
>> *                 hum_in_offset: 0*
>> *                hum_out_offset: 0*
>> *                            id: 0*
>> *                 lux_wm2_coeff: 0*
>> *                       magic_1: 0xfa*
>> *                       magic_2: 0x 3*
>> *                         model: 0*
>> *                     rain_coef: 0*
>> *                   read_period: 0*
>> *                  rel_pressure: 101.8*
>> *                temp_in_offset: 0*
>> *               temp_out_offset: 0*
>> *                      timezone: 0*
>> *                    unknown_01: 0*
>> *                    unknown_18: 3*
>> *                       version: 0*
>> *                     wind_coef: 0*
>> *                     wind_mult: 0*
>>
>> *         max.abs_pressure.date: 2000-00-00 00:00*
>> *          max.abs_pressure.val: 0*
>> *             max.dewpoint.date: 2000-160-03 00:00*
>> *              max.dewpoint.val: 0*
>>
>>               .... (cut similar)
>>
>> and the log file shows :
>>
>> *Jan  3 17:45:28 rpi2 wee_device[2565] INFO weewx.drivers.fousb: driver
>> version is 1.20*
>> *Jan  3 17:45:28 rpi2 wee_device[2565] INFO weewx.drivers.fousb: polling
>> mode is PERIODIC*
>> *Jan  3 17:45:28 rpi2 wee_device[2565] INFO weewx.drivers.fousb: polling
>> interval is 60*
>> *Jan  3 17:45:28 rpi2 wee_device[2565] INFO weewx.drivers.fousb: found
>> station on USB bus= device=*
>> *Jan  3 17:45:28 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x000000*
>> *Jan  3 17:45:30 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x000000*
>> *Jan  3 17:45:32 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x000000*
>> *.... (many similar cut)*
>> *Jan  3 17:46:53 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x0000e0*
>> *Jan  3 17:46:55 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x0000e0*
>> *Jan  3 17:46:57 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x0000e0*
>> *Jan  3 17:46:59 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x0000e0*
>> *Jan  3 17:47:01 rpi2 wee_device[2565] INFO weewx.drivers.fousb: unstable
>> read: blocks differ for ptr 0x0000e0*
>> *Jan  3 17:47:03 rpi2 wee_device[2565] ERROR weewx.drivers.fousb:
>> unrecognised magic number fa03*
>>
>>
>> I've cycled through the model numbers in the weewx.conf [FineOffsetUSB]
>> settings but this has made no difference.
>>
>> I should say I was using the latest stable version on a rpi4 but
>> wee_device crashes with this on the first usb block read (errno 75,
>> Overflow).  I am now using  4.0.0b6 on an rpi2 which at least doesn't crash.
>>
>> I have attached a laptop running windows with the manufacturers software
>> - this works perfectly (but the software is very limited) so at least I
>> know the weather station is fully functional
>>
>> Thanks
>>
>> Bob
>>
> --
> You received this message because you are subscribed to the Google Groups
> "weewx-user" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to weewx-user+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/weewx-user/99c989b3-0028-40d4-9836-8e5ea0df2ea8%40googlegroups.com
> <https://groups.google.com/d/msgid/weewx-user/99c989b3-0028-40d4-9836-8e5ea0df2ea8%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/CAPq0zEC3e7KCCR2J9%2BPOzSpnkyDDe%3DoOav_FWLY7gBtyH60wXg%40mail.gmail.com.

Reply via email to