The difference is that to upload to the station registry, V5 uses an HTTP POST with a serialized JSON payload, while V4 uses an HTTP GET. The GET sent an "unbound method" to the registry as a query parameter. We get a lot of those, so I included a bit of code to salvage the hardware type from the "unbound method" parameter. Hence, no one noticed.
On Sat, Feb 17, 2024 at 2:24 PM vince <vinceska...@gmail.com> wrote: > There are 75 currently registered sites using this driver but 'all' are > showing as running 4.x so I'm guessing something changed in v5 weewx...... > > On Saturday, February 17, 2024 at 1:44:38 PM UTC-8 bell...@gmail.com > wrote: > >> Theory: >> Drivers are suppose to implement hardware_name as a property. The driver >> is missing the @property for hardware_name. When WeeWX accesses it as >> property, for example, instance.hardware_name it returns the function >> definition. >> Try adding the @property decorator to hardware_name in the driver. (I did >> some minor testing by removing it in my driver) >> If this is it, I am stumped why it ever worked…. >> rich >> >> On Saturday 17 February 2024 at 13:49:06 UTC-5 vince wrote: >> >>> Tom - I can duplicate this here with 5.0.2 running vs. my wfudpsimulator >>> tool since I don't have actual hardware any more >>> >>> If registering is enabled, you get that error when the archive period >>> rolls around. >>> >>> I added some debugging to restx that might help. >>> >>> # Delay the registration by a random amount so all stations >>> don't hit the server >>> # at the same time. >>> _registry_dict.setdefault('delay_post', random.randint(0, 45)) >>> >>> log.info("StationRegistry _registry_dict: %s", _registry_dict) >>> >>> Which outputs.... >>> >>> 2024-02-17T10:36:57.489015-08:00 raspberrypi weewxd[1902]: INFO >>> weewx.restx: StationRegistry _registry_dict: {'log_success': True, >>> 'log_failure': True, 'station_url': ' >>> https://www.example.com/no-station-here', 'station_type': >>> 'WeatherFlowUDP', 'description': 'WeatherflowUDP Simulator test station', >>> 'latitude': 47.31, 'longitude': -122.36, 'station_model': <bound method >>> WeatherFlowUDPDriver.hardware_name of >>> <user.weatherflowudp.WeatherFlowUDPDriver object at 0xf6ff9670>>, >>> 'config_path': '/home/pi/weewx-data/weewx.conf', 'entry_path': >>> '/home/pi/weewx-venv/lib/python3.11/site-packages/weewxd.py', 'delay_post': >>> 39} >>> >>> Notice the station_model value. Looks a little odd.... >>> >>> The driver sets the following.... >>> >>> # Default settings... >>> DRIVER_VERSION = "1.10" >>> HARDWARE_NAME = "WeatherFlow" >>> DRIVER_NAME = 'WeatherFlowUDP' >>> >>> Notice the single quotes around DRIVER_NAME there ? >>> Perhaps some obscure single vs. double quote thing going on ? >>> >>> >>> -- > 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/742f4e63-77e3-41bc-b24d-ed98a37ab343n%40googlegroups.com > <https://groups.google.com/d/msgid/weewx-user/742f4e63-77e3-41bc-b24d-ed98a37ab343n%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/CAPq0zEA4WJfBRNFvGLf5sQFFYd740qb9ERvM9cyjAaHcnFcGsA%40mail.gmail.com.