resurrecting custom hardware/driver

43 views
Skip to first unread message

Chris Richmond

unread,
Oct 12, 2020, 11:12:47 AM10/12/20
to weewx-development
Hi All,

    A few years ago I'd built a box that runs an RPi who's purpose is to datalog when AC devices turn on/off.
I used weewx to collect and graph the data.  I've since moved, and somehow in that process, the SSD that
had the latest versions of everything died.  I have previous versions of all the software bits, but so far I've been
unable to get weewx to get started.

With debug set to 2, this is what I get in /var/log/messages:
Oct 12 07:43:38 pi3a weewx[20963]: engine: Initializing weewx version 3.6.2
Oct 12 07:43:38 pi3a weewx[20963]: engine: Using Python 2.7.9 (default, Sep 17 2016, 20:26:04) #012[GCC 4.9.2]
Oct 12 07:43:38 pi3a weewx[20963]: engine: Platform Linux-4.9.35-v7+-armv7l-with-debian-8.0
Oct 12 07:43:38 pi3a weewx[20963]: engine: Using configuration file /home/weewx/weewx.devices.conf
Oct 12 07:43:38 pi3a weewx[20963]: engine: Loading station type ACLogger (user.aclogger)
Oct 12 07:43:38 pi3a weewx[20963]: aclogger: MainThread: driver version is 0.5
Oct 12 07:43:38 pi3a weewx[20963]: aclogger: MainThread: model is CER8000
Oct 12 07:43:38 pi3a weewx[20963]: aclogger: MainThread: sensor map is {'upper sump pump': 'rainRate', 'totalSupply': 'supplyVoltage', 'middle sump pump': 'leafWet2', 'lower sump pump': 'hailRate', 'cave dehum': 'extraHumid3', 'circ fan': 'interval', 'rain gauge': 'rain', 'dehumidifier': 'extraHumid1', 'furnace': 'extraHumid2'}
Oct 12 07:43:38 pi3a weewx[20963]: aclogger: MainThread: driver will listen on :6944
Oct 12 07:43:38 pi3a weewx[20963]: aclogger: MainThread: poll interval is 30
Oct 12 07:43:38 pi3a weewx[20963]: aclogger: MainThread: network timeout is 15s
Oct 12 07:43:38 pi3a weewx[20963]: import of driver failed: [Errno -2] Name or service not known (<class 'socket.gaierror'>)
Oct 12 07:43:38 pi3a weewx[20963]: engine: Unable to load driver: [Errno -2] Name or service not known
Oct 12 07:43:38 pi3a weewx[20963]:     ****  Exiting...

And this is what I get in the xterm:
pi3a_/home/weewx> bin/weewxd -p /home/weewx/ac_devices.pid weewx.devices.conf
 Have real time, starting at  1602513806.45
pi3a_/home/weewx> echo $status
4
pi3a_/home/weewx> sudo bin/weewxd -p /home/weewx/ac_devices.pid weewx.devices.conf
 Have real time, starting at  1602513818.83
pi3a_/home/weewx> echo $status
4

This is the relevant config sections:
[Station]
    location = Teton View
    latitude = 44.00
    longitude = -111.0
    altitude = 5615, foot    # Choose 'foot' or 'meter' for unit
    station_type = ACLogger
    rain_year_start = 1
    week_start = 6

[ACLogger]
    driver = user.aclogger
    port   = 6944
    poll_interval = 30

The only place I can find an exit code of 4 is in: bin/weewx/__init__.py:21  IO_ERROR     = 4
The failure is in bin/weewx/engine.py in def setupStation in the try/except block.  

I can run the driver on it's own, and it will communicate with the custom hardware piece's software, but
booting weewx dies.  The exit code 4 seems familiar, but I can't remember for sure, nor figure out what
it means.  Any suggestions would be appreciated.

Thx, Chris



Tom Keffer

unread,
Oct 12, 2020, 11:37:41 AM10/12/20
to Chris Richmond, weewx-development
I don't know anything about your driver aclogger, but gaierror exceptions are usually caused by an invalid host name or port (the 'gai' in gaierror stands for getaddrinfo()).

-tk

--
You received this message because you are subscribed to the Google Groups "weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-developm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/0f66e487-b78b-43d8-a389-a97598b45a69o%40googlegroups.com.

Chris Richmond

unread,
Oct 12, 2020, 11:53:22 AM10/12/20
to weewx-development
That was it!  The hostname had changed slightly (hard-coded in the driver (thought it was in the config...)), and the old name wouldn't resolve.  The funny thing is that both
ends are using localhost (running both parts on the same RPi), but the driver is using the actual host name.

Thx, Chris

Reply all
Reply to author
Forward
0 new messages