Hi,

I think you should be putting your Raspberry_Pi.py file in the 
/home/weewx/bin/user 
directory not /usr.

Also, under [Raspberry_Pi] you should use

driver = user.Raspberry_Pi

not 

driver = usr.Raspberry_Pi

Gary

On Wednesday, 21 June 2017 12:31:42 UTC+10, Bob Snyder wrote:
>
> Well for two nights I've tried this and it is clear that I just can't 
> figure it out and the doc isn't too clear for me.  If someone could help me 
> get moving again, I'd really appreciate it.
>
> I have put a file called Raspberry_Pi.py in /usr
>
> pi@wx-rpi:/usr $ ls -l Rasp*
> -rw-r--r-- 1 pi pi 2664 Jun 20 21:17 Raspberry_Pi.py
>
> I have what I believe is the proper code in the config file. Under Station 
> I have:
>
>
>     station_type = Raspberry_Pi
>
> Then I have:
>
> [Raspberry_Pi]
>     loop_interval = 5
>     driver = usr.Raspberry_Pi
>
>
> When I start it, this is in the log:
>
> Jun 20 21:17:30 wx-rpi systemd[1]: Starting LSB: weewx weather system...
> Jun 20 21:17:30 wx-rpi weewx[24463]: engine: Initializing weewx version 
> 3.7.1
> Jun 20 21:17:30 wx-rpi weewx[24463]: engine: Using Python 2.7.9 (default, 
> Sep 17 2016, 20:26:04) #012[GCC 4.9.2]
> Jun 20 21:17:30 wx-rpi weewx[24463]: engine: Platform Linux-4.9.24-v7+-
> armv7l-with-debian-8.0
> Jun 20 21:17:30 wx-rpi weewx[24463]: engine: Locale is 'en_US.UTF-8'
> Jun 20 21:17:30 wx-rpi weewx[24463]: engine: pid file is /var/run/weewx.
> pid
> Jun 20 21:17:30 wx-rpi weewx[24453]: Starting weewx weather system: weewx.
> Jun 20 21:17:30 wx-rpi systemd[1]: Started LSB: weewx weather system.
> Jun 20 21:17:30 wx-rpi weewx[24467]: engine: Using configuration file /etc
> /weewx/weewx.conf
> Jun 20 21:17:30 wx-rpi weewx[24467]: engine: Loading station type 
> Raspberry_Pi (usr.Raspberry_Pi)
> Jun 20 21:17:30 wx-rpi weewx[24467]: engine: Caught unrecoverable 
> exception in engine:
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****  No module named usr.
> Raspberry_Pi
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****  Traceback (most recent 
> call last):
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****    File 
> "/usr/share/weewx/weewx/engine.py", line 865, in main
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****      engine = engine_class(
> config_dict)
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****    File 
> "/usr/share/weewx/weewx/engine.py", line 71, in __init__
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****      self.setupStation(
> config_dict)
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****    File 
> "/usr/share/weewx/weewx/engine.py", line 95, in setupStation
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****      __import__(driver)
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****  ImportError: No module 
> named usr.Raspberry_Pi
> Jun 20 21:17:30 wx-rpi weewx[24467]:     ****  Exiting.
>
> Here is the driver file I am trying to use.
>
> #
> #    $Revision: 1 $
> #    $Author: Nickolas McColl $
> #    $Date: 2014-08-16 $
> #
> """Raspberry Pi driver for the weewx weather system"""
>
>
> from __future__ import with_statement
> # import math
> import time
> #import weedb
> #import weeutil.weeutil
> import weewx.abstractstation
> import weewx.wxformulas
>
>
>
>
> def loader(config_dict, engine):
>     import weewx.units
>     altitude_m = weewx.units.getAltitudeM(config_dict)
>
>
>     station = Raspberry_Pi(altitude = altitude_m, **config_dict[
> 'Raspberry_Pi'])
>
>
>     return station
>
>
> class Raspberry_Pi(weewx.abstractstation.AbstractStation):
>     """Station using Raspberry Pi"""
>
>
>     def __init__(self, **stn_dict):
>         self.altitude = stn_dict['altitude']
>         self.loop_interval = float(stn_dict.get('loop_interval'))
>
>
>     def genLoopPackets(self):
>         import weewx.units
>
>
>         while True:
>             start_time = time.time()
>
>
>             # Create Loop packet
>             f = open('/var/tmp/weewx/bin/wxdata.csv')
>             input = f.readline()
>             f.close()
>             data = input.split(',')
>             if len(data) == 13: # data line is complete, process
>                 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,
>                            'pressure' : data[1],
>                            'outTemp' : data[4],
>                            'outHumidity' : data[5]}
>
>
>                 _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
>             if sleep_time > 0:
>                   time.sleep(sleep_time)
>
>
>     def hardware_name(self):
>         return "Raspberry_Pi"
>
>
>

-- 
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.

Reply via email to