Hello, I've the same problem with my WH1080. I bought a yepkit ykush xs. Because I#m not familiar with programming I would like how you changed the fousb.py to get it to work. I think yepkit doesn't know the power_cycle command only "on" or "off". Do you have some advices or help or the driver for me?
Thank you for your help Joachim Am Mittwoch, 7. Juni 2017 10:54:20 UTC+2 schrieb Don: > > Thanks for that. > > I tried downgrading pyusb but it seemed difficult. > I tried changing fousb.py to use the new version of pyusb but it seemed > difficult. > I tried making fousb.py use the legacy interface to pyusb but that turned > into a black hole of pain. > > So I hacked fousb.py to execute the yepkit command directly. yuck! but it > seems to work. > > Thanks, > Don > > On Tuesday, 6 June 2017 13:32:21 UTC+10, Don wrote: >> >> I have a fineoffset weather station and a yepkit usb switchable hub >> running weewx version 3.7.2 on ubuntu 17.04. >> >> The usb hub is at bus 001, device 004 and the weather station on port 1. >> >> don@wee:~$ lsusb >> Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub >> Bus 001 Device 006: ID 04d8:f2f7 Microchip Technology, Inc. >> Bus 001 Device 011: ID 1941:8021 Dream Link WH1080 Weather Station / USB >> Missile Launcher >> Bus 001 Device 004: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub >> Bus 001 Device 007: ID 04ca:3007 Lite-On Technology Corp. >> Bus 001 Device 002: ID 0483:5020 STMicroelectronics >> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub >> >> don@wee:~$ lsusb -t >> /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M >> /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M >> |__ Port 2: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, >> 12M >> |__ Port 2: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, >> 12M >> |__ Port 2: Dev 2, If 2, Class=Human Interface Device, Driver=usbhid, >> 12M >> |__ Port 4: Dev 7, If 1, Class=Wireless, Driver=btusb, 12M >> |__ Port 4: Dev 7, If 0, Class=Wireless, Driver=btusb, 12M >> |__ Port 6: Dev 4, If 0, Class=Hub, Driver=hub/4p, 480M >> |__ Port 1: Dev 11, If 0, Class=Human Interface Device, Driver=, >> 1.5M >> |__ Port 4: Dev 6, If 0, Class=Human Interface Device, Driver=, >> 12M >> >> The relevant parts of the wee configuration are as follows. >> >> [FineOffsetUSB] >> # This section is for the Fine Offset series of weather stations. >> >> # The station model, e.g., WH1080, WS1090, WS2080, WH3081 >> model = WH3081 >> >> # How often to poll the station for data, in seconds >> polling_interval = 60 >> >> # The driver to use: >> driver = weewx.drivers.fousb >> >> power_cycle_hub = 001:004 >> power_cycle_port = 1 >> >> When a lockup occurs (about every two or three weeks) the following is >> shown in the logs. >> >> Jun 04 06:05:25 wee weewx[1729]: fousb: Attempting to power cycle >> Jun 04 06:05:25 wee weewx[1729]: engine: Caught unrecoverable exception >> in engine: >> Jun 04 06:05:25 wee weewx[1729]: **** %d format: a number is >> required, not NoneType >> Jun 04 06:05:25 wee weewx[1729]: **** Traceback (most recent call >> last): >> Jun 04 06:05:25 wee weewx[1729]: **** File >> "/usr/share/weewx/weewx/engine.py", line 865, in main >> Jun 04 06:05:25 wee weewx[1729]: **** engine = >> engine_class(config_dict) >> Jun 04 06:05:25 wee weewx[1729]: **** File >> "/usr/share/weewx/weewx/engine.py", line 77, in __init__ >> Jun 04 06:05:25 wee weewx[1729]: **** >> self.loadServices(config_dict) >> Jun 04 06:05:25 wee weewx[1729]: **** File >> "/usr/share/weewx/weewx/engine.py", line 141, in loadServices >> Jun 04 06:05:25 wee weewx[1729]: **** >> self.service_obj.append(weeutil.weeutil._get_object(svc)(self, config_dict)) >> Jun 04 06:05:25 wee weewx[1729]: **** File >> "/usr/share/weewx/weewx/engine.py", line 466, in __init__ >> Jun 04 06:05:25 wee weewx[1729]: **** if software_interval != >> self.engine.console.archive_interval: >> Jun 04 06:05:25 wee weewx[1729]: **** File >> "/usr/share/weewx/weewx/drivers/fousb.py", line 991, in archive_interval >> Jun 04 06:05:25 wee weewx[1729]: **** return >> self._archive_interval_minutes() * 60 >> Jun 04 06:05:25 wee weewx[1729]: **** File >> "/usr/share/weewx/weewx/drivers/fousb.py", line 1006, in >> _archive_interval_minutes >> Jun 04 06:05:25 wee weewx[1729]: **** >> power_cycle_station(self.pc_hub, self.pc_port) >> Jun 04 06:05:25 wee weewx[1729]: **** File >> "/usr/share/weewx/weewx/drivers/fousb.py", line 715, in power_cycle_station >> Jun 04 06:05:25 wee weewx[1729]: **** devid = "%s:%03d" % >> (bus.dirname, dev.devnum) >> Jun 04 06:05:25 wee weewx[1729]: **** TypeError: %d format: a number >> is required, not NoneType >> Jun 04 06:05:25 wee weewx[1729]: **** Exiting. >> >> >> Also of interest, >> >> on@wee:~$ python2 usb_control-0.6.py --scan >> Traceback (most recent call last): >> File "usb_control-0.6.py", line 190, in <module> >> main() >> File "usb_control-0.6.py", line 187, in main >> scan() >> File "usb_control-0.6.py", line 72, in scan >> print "device at %s:%03d" % (bus.dirname, dev.devnum) >> TypeError: %d format: a number is required, not NoneType >> >> Using the yepkit software I can turn the port on and off successfully. >> >> Any one with any thoughts? >> >> Thanks heaps, >> Don >> >> >> >> >> -- 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.
