I hope I'm not making rookie mistakes, but I get the following when doing a fresh install on a Pi-zero. Nothing else is added, just weewx and the GW-1000 driver. I'll pull all the required logs tomorrow, but here is what I'm seeing on a reboot:
Aug 4 02:00:48 OpiQ-12 dhcpcd[261]: wlan0: soliciting an IPv6 router Aug 4 02:00:48 OpiQ-12 weewx[367] INFO weewx.engine: Loading station type GW1000 (user.gw1000) Aug 4 02:00:48 OpiQ-12 weewx[367] ERROR gw1000: user.gw1000: Failed to send command 'CMD_READ_SSSS' after 3 attempts Aug 4 02:00:48 OpiQ-12 weewx[367] ERROR weewx.engine: Import of driver failed: 'NoneType' object has no attribute '__getitem__' (<type 'exceptions.TypeError'>) Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** Traceback (most recent call last): Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** File "/usr/share/weewx/weewx/engine.py", line 103, in setupStation Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** self.console = loader_function(config_dict, self) Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line 1021, in loader Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** return Gw1000Driver(**config_dict[DRIVER_NAME]) Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line 1271, in __init__ Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** super(Gw1000Driver, self).__init__(**stn_dict) Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line 728, in __init__ Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** use_th32=use_th32) Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** File "/usr/share/weewx/user/gw1000.py", line 1463, in __init__ Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** is_wh24 = six.indexbytes(_sys_params, 5) == 0 Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** File "/usr/share/weewx/six.py", line 661, in indexbytes Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** return ord(buf[i]) Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL weewx.engine: **** TypeError: 'NoneType' object has no attribute '__getitem__' Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL __main__: Unable to load driver: 'NoneType' object has no attribute '__getitem__' Aug 4 02:00:48 OpiQ-12 weewx[367] CRITICAL __main__: **** Exiting... On Monday, August 3, 2020 at 10:25:47 PM UTC-5 gjr80 wrote: > On Tuesday, 4 August 2020 07:44:37 UTC+10, Paul Anderson wrote: >> >> So I guess I'm a perdoid control freak >> > > I hope that is not too painful :) > > The other point of concern is over blindly pasting the full [Accumulator] >> stanza into weewx.conf when running as a service. Feel it's really easy for >> someone not to realize the unattended consequences caused by the fact that >> this will affect the Accumulator type for fields generated by the normal >> driver and other services in use in addition to the GW1000 service. >> > > Just to be clear let's work through this when using the GW1000 driver as a > service. Every field accumulated by the accumulator has a default extractor > of 'avg' (which gives the average of all loop values seen in the archive > period to date). If the field concerned is populated and is being mapped > through from the GW1000 to WeeWX under the default field map then all is > good, the appropriate extractor is being/will be used. If the field is > populated by the (non-GW1000) driver or some other service and if that > field was relying on the default extractor, then the GW1000 installer would > clobber that default extractor. If the other field had an explicit > extractor in weewx.conf then wee_extension would respect that existing > setting and it would not be clobbered. If the user defines a field map > using [[field_map]] or alters the default field map with > [[field_map_extensions]] then wee_extension will not know about these > changes and potentially the newly mapped field will have the wrong > extractor. So there are a couple of corner cases that could cause issues, > though the latter case is just as much of an issue when using the GW1000 > driver as a driver as it is when using it as a service. > > One thing to remember, the existence of an extractor entry for a field > that does not exist has no affect on the operation of WeeWX other than > taking up a few more bytes of memory/disk space. > > I'll put this down as an issue to look at later, for now I think it can be > handled with a note or two in the install instructions. In fact that may be > the final solution, the extension installer is only capable of so much. I > am hesitant to fully remove populating the extractors, I suspect doing that > and the follow on need for users to manually the extractors will cause just > as many support issues. > > On Tuesday, 4 August 2020 08:28:11 UTC+10, Paul Anderson wrote: > >> Gary sorry to be a pain in the neck >> > > Not at all, this driver is complex and has a lot of corner cases that I > likely won't find without the help of others, thank you for your input. > > Gary > -- 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/20ec7add-9d7e-4e89-881d-171d0ad3ecf3n%40googlegroups.com.