Like I said I can't explain why this error would not come up with the same 
driver under 3.9.1,I just checked the 3.9.1 documentation/code and 
hardware_name was mandatory. In any case easy fixed, you just need 
something like this in your driver class:

    @property
    def hardware_name(self):
        return "MyDriverName"

Fileparse driver 
<https://github.com/weewx/weewx/blob/master/examples/fileparse/bin/user/fileparse.py#L111>
 is a good simple example.

Gary


On Thursday, 21 May 2020 16:01:11 UTC+10, Neville Davis wrote:
>
> This is my driver file, had no problems before.. but always a first time 
> :) 
>
> #
> #    $Revision: 1 $
> #    $Author: Nickolas McColl $
> #    $Date: 2014-08-16 $
> #    Initial information from above author further edits by Nev Davis
> #    Latest edit 20 June 2017 by Nev Davis
>
> """Raspberry Pi driver for the weewx weather system"""
>
> from __future__ import with_statement
> import math
> import time
> import weewx.units
> import weedb
> import weeutil.weeutil
> import weewx.drivers
> import weewx.wxformulas
>
> DRIVER_NAME = 'PiWeather'
> DRIVER_VERSION = "1.9"
>
> def loader(config_dict, engine):
>     return PiWeatherDriver(**config_dict[DRIVER_NAME])
>        
> def confeditor_loader():
>     return PiWeatherConfEditor()
>
> class PiWeatherDriver(weewx.drivers.AbstractDevice):
>
>     def __init__(self, **stn_dict):
>         self.loop_interval = float(stn_dict.get('loop_interval',2.5))
>
>     def genLoopPackets(self):
>         while True:
>             start_time = time.time()
>
>             # Create Loop packet
>             f = open('/var/ramdisk/wxdata.csv')
>             input = f.readline()
>             f.close()
>
>             data = input.split(',')
>             if len(data) == 13: # data line is complete, process
> #            if len(data) == 11:
>                 for i in range(1, (len(data))):
>                     try:
>                         data[i] = float(data[i])
>                     except ValueError:
>                         data[i] = None
>            
>                 raw_time =time.strptime(data[0], "%Y-%m-%d %H:%M:%S")
>             
>                 _packet = {'dateTime': int(time.mktime(raw_time)),
>                       'usUnits' : weewx.METRIC,
>                       'outTemp' : data[1],
>                       'outHumidity' : data[2],
>                       'windSpeed' : data[3], #use 3 second average
>                       'windGust' : data[4], #use 3 second average
>                       'windDir' : data[5],
>                       'pressure' : data[6],
>                       'extraTemp1' : data[7],
>                       'inTemp' : data[8],
>                       'inHumidity' : data[9],
>                       'UV' : data[10],
>                       'radiation' :data[11],
>                       'farsSpeed' : data[12]
>                           }
>                 _packet['dewpoint'] = 
> weewx.wxformulas.dewpointC(_packet['outTemp'], _packet['outHumidity'])
>                 #_packet['barometer'] = 
> weewx.wxformulas.sealevel_pressure_Metric(_packet['pressure'], self.altitude, 
> _packet['outTemp'])
>                 #_packet['altimeter'] = 
> weewx.wxformulas.altimeter_pressure_Metric(_packet['pressure'], self.altitude)
>                 _packet['heatdeg'] = 
> weewx.wxformulas.heating_degrees(_packet['outTemp'], 18.333)
>                 _packet['cooldeg'] = 
> weewx.wxformulas.cooling_degrees(_packet['outTemp'], 18.333)
>                 _packet['heatindex'] = 
> weewx.wxformulas.heatindexC(_packet['outTemp'], _packet['outHumidity'])
>  
>                 yield _packet
>      
>             sleep_time = (start_time - time.time()) + self.loop_interval
>             #sleep_time = self.loop_interval
>             if sleep_time > 0:
>                   time.sleep(sleep_time)
>
> class PiWeatherConfEditor(weewx.drivers.AbstractConfEditor):
>     @property
>     def default_stanza(self):
>       return
>            
>     
>
> On Thursday, May 21, 2020 at 2:51:39 PM UTC+10, Neville Davis wrote:
>>
>> the following from setup and status
>>
>> copying util/import/cumulus-example.conf -> /home/weewx/util/import
>>
>> copying util/launchd/com.weewx.weewxd.plist -> /home/weewx/util/launchd
>>
>> creating /home/weewx/util/default
>>
>> copying util/default/weewx -> /home/weewx/util/default
>>
>> running install_egg_info
>>
>> Writing /home/weewx/bin/weewx-4.0.0.egg-info
>>
>> Traceback (most recent call last):
>>
>>   File "/home/weewx/bin/wee_config", line 12, in <module>
>>
>>     import weeutil.logger
>>
>>   File "/home/weewx/bin/weeutil/logger.py", line 14, in <module>
>>
>>     import configobj
>>
>> ImportError: No module named 'configobj'
>>
>> *pi@raspberrypi*:*~ $* sudo systemctl status weewx
>>
>> *●* weewx.service - LSB: weewx weather system
>>
>>    Loaded: loaded (/etc/init.d/weewx)
>>
>>    Active: *failed* (Result: exit-code) since Thu 2020-05-21 14:41:54 
>> AEST; 50s ago
>>
>>   Process: 422 ExecStart=/etc/init.d/weewx start *(code=exited, 
>> status=1/FAILURE)*
>>
>>
>> May 21 14:41:54 raspberrypi weewx[422]: Starting weewx weather system: 
>> weewxTraceback (most recent call last):
>>
>> May 21 14:41:54 raspberrypi weewx[422]: File "/home/weewx/bin/weewxd", 
>> line 21, in <module>
>>
>> May 21 14:41:54 raspberrypi weewx[422]: import weecfg
>>
>> May 21 14:41:54 raspberrypi weewx[422]: File 
>> "/home/weewx/bin/weecfg/__init__.py", line 22, in <module>
>>
>> May 21 14:41:54 raspberrypi weewx[422]: import configobj
>>
>> May 21 14:41:54 raspberrypi weewx[422]: ImportError: No module named 
>> 'configobj'
>>
>> May 21 14:41:54 raspberrypi weewx[422]: failed!
>>
>> May 21 14:41:54 raspberrypi systemd[1]: *weewx.service: control process 
>> exited, code=exited status=1*
>>
>> May 21 14:41:54 raspberrypi systemd[1]: *Failed to start LSB: weewx 
>> weather system.*
>>
>> May 21 14:41:54 raspberrypi systemd[1]: *Unit weewx.service entered 
>> failed state.*
>>
>>
>> *What have I forgotten to do ???*
>>
>> *Nev*
>>
>

-- 
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/f76fdc4d-cb6c-4b1b-a0c8-daed1e455da0%40googlegroups.com.

Reply via email to