Connecting Froggit WH2600SE to Weewx - Setup always fails :(

123 views
Skip to first unread message

Lars

unread,
Jan 1, 2020, 7:10:47 PM1/1/20
to weewx-user
Dear Wx experts,

after reading in different forums about weather stations I purchased a Froggit WH2600SE.
According to the http://weewx.com/hardware.html its made by Fine Offset and should be supported.
I purchased the version with bridge/observer unit because it should save as much power as possible (the station will run with solar in the field).
The weather logger software on the bridge device is Version 2.2.8 (pre-configured for wunderground; with the option to change the server IP/Hostname, and Server Port).
Reporting to Wunderground works but I need the data directly and in a format I can export.

For the last 2 weeks I have been fighting in nightly sessions to get the data onto my new raspberry pi version 3 model B V1.2 (never used one before).
To start everything I assigned a fixed IP of 192.168.1.119 to my raspberry and 192.168.1.122 to the bridge in my router.
I used/ tried the weewx interceptor driver by Matthew Well in listen and sniff mode but did not get any data to my raspberry.
I went through several complete reinstalls of weewx and the raspberry OS (for example because I tried to bridge eth0 and eth1 (a USB LAN dongle) while using SSH to log in via WLAN).
Needless to say I did not succeed getting the bridge working.

During one of my first tries I used this tutorial http://landoflinux.com/linux_raspberry_pi_weather_station.html but I now realised that it probably did not work because it contains a HP1000 driver (which is a wifi Display afaik).
I tried several other things (http://weewx.com/docs/usersguide.htm#installing and https://github.com/weewx/weewx/wiki/observer ….) but nothing worked.

I have now reinstalled raspberry OS (raspian  buster lite, administrated with SSH via Terminal), weewx and the interceptor driver again.
Then I edited the weewx config file to listen in port 800 and installed the cumulus plugin https://github.com/weewx/weewx/wiki/crt (http://192.168.1.119/var/tmp/realtime.txt reported no real data for a while but cant be reached anymore).

See below weewx config file:

# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2019 Tom Keffer <tke...@gmail.com>
# See the file LICENSE.txt for your rights.

##############################################################################

# This section is for general configuration information.

# Set to 1 for extra debug info, otherwise comment it out or set to zero
debug = 1

# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /

# Whether to log successful operations
log_success = True

# Whether to log unsuccessful operations
log_failure = True

# How long to wait before timing out a socket (FTP, HTTP) connection
socket_timeout = 20

# Do not modify this. It is used when installing and updating weewx.
version = 3.9.2

##############################################################################

#   This section is for information about the station.

[Station]

    # Description of the station location

….



  # Set to type of station hardware. There must be a corresponding stanza
    # in this file with a 'driver' parameter indicating the driver to be used.
    station_type = Interceptor

    # If you have a website, you may specify an URL
    #station_url = http://www.example.com

    # The start of the rain year (1=January; 10=October, etc.). This is
    # downloaded from the station if the hardware supports it.
    rain_year_start = 1

    # Start of week (0=Monday, 6=Sunday)
    week_start = 0

##############################################################################

[Interceptor]
    # This section is for the network traffic interceptor driver.

    # The driver to use:
    driver = user.interceptor

    # Specify the hardware device to capture.  Options include:
    #   acurite-bridge - acurite internet bridge, smarthub, or access
    #   observer - fine offset WH2600/HP1000/HP1003, ambient WS2902
    #   lw30x - oregon scientific LW301/LW302
    #   lacrosse-bridge - lacrosse GW1000U/C84612 internet bridge
    #   fineoffset-bridge - fine offset GW1000/GW1000B/GW1000BU wifi gateway
    #   wu-client - any hardware that uses the weather underground protocol
    device_type = observer
    port = 800
    address = 192.168.1.122

##############################################################################

[Simulator]
    # This section is for the weewx weather station simulator

    # The time (in seconds) between LOOP packets.
    loop_interval = 2.5

    # The simulator mode can be either 'simulator' or 'generator'.
    # Real-time simulator. Sleep between each LOOP packet.
    mode = simulator
    # Generator.  Emit LOOP packets as fast as possible (useful for testing).
    #mode = generator

    # The start time. Format is YYYY-mm-ddTHH:MM. If not specified, the default 
    # is to use the present time.
    #start = 2011-01-01T00:00

    # The driver to use:
    driver = weewx.drivers.simulator

##############################################################################

#   This section is for uploading data to Internet sites

[StdRESTful]

    [[StationRegistry]]
        # To register this weather station with weewx, set this to true
        register_this_station = false

    [[AWEKAS]]
        # This section is for configuring posts to AWEKAS.

        # If you wish to do this, set the option 'enable' to true,
        # and specify a username and password.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        username = replace_me
        password = replace_me

    [[CWOP]]
        # This section is for configuring posts to CWOP.

        # If you wish to do this, set the option 'enable' to true,
        # and specify the station ID (e.g., CW1234).
        enable = false
        station = replace_me

    # If this is an APRS (radio amateur) station, uncomment
    # the following and replace with a passcode (e.g., 12345).
    #passcode = replace_me (APRS stations only)

    [[PWSweather]]

….

 [[Wunderground]]
        # This section is for configuring posts to the Weather Underground.

        # If you wish to do this, set the option 'enable' to true,
        # and specify a station (e.g., 'KORHOODR3') and password.
        # To guard against parsing errors, put the password in quotes.
        enable = false
        station = replace_me
        password = replace_me

        # Set the following to True to have weewx use the WU "Rapidfire"
        # protocol. Not all hardware can support it. See the User's Guide.
        rapidfire = False

##############################################################################

#   This section specifies what reports, using which skins, to generate.

[StdReport]

    # Where the skins reside, relative to WEEWX_ROOT
    SKIN_ROOT = /etc/weewx/skins

    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = /var/www/html/weewx

    # The database binding indicates which data should be used in reports.
    data_binding = wx_binding

    # Whether to log a successful operation
    log_success = True

    # Whether to log an unsuccessful operation
    log_failure = False

    # Each of the following subsections defines a report that will be run.
    # See the customizing guide to change the units, plot types and line
    # colors, modify the fonts, display additional sensor data, and other
    # customizations. Many of those changes can be made here by overriding
    # parameters, or by modifying templates within the skin itself.

    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons


[Databases]

    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_name = weewx.sdb
        database_type = SQLite

    # MySQL
    [[archive_mysql]]
        database_name = weewx
        database_type = MySQL

##############################################################################

#   This section defines defaults for the different types of databases.

[DatabaseTypes]

    # Defaults for SQLite databases
    [[SQLite]]
        driver = weedb.sqlite
        # Directory in which the database files are located
        SQLITE_ROOT = /var/lib/weewx

    # Defaults for MySQL databases
    [[MySQL]]
        driver = weedb.mysql
        # The host where the database is located
        host = localhost
        # The user name for logging in to the host
        user = weewx
        # The password for the user name (quotes guard against parsing errors)
        password = weewx

##############################################################################

#   This section configures the internal weewx engine.

[Engine]

    [[Services]]
        # This section specifies the services that should be run. They are
        # grouped by type, and the order of services within each group
        # determines the order in which the services will be run.
        prep_services = weewx.engine.StdTimeSynch
        data_services = ,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCal$
        archive_services = weewx.engine.StdArchive
        restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.res$
        report_services = weewx.engine.StdPrint, weewx.engine.StdReport

##############################################################################

# Options for extension 'crt'
[CumulusRealTime]
    filename = /var/tmp/realtime.txt
    unit_system = METRIC # options are US, METRIC, METRICWX     




Weewx is running but I think there might be a driver issue (I have not idea what driver I should use).

sudo tail -f /var/log/syslog 
gives me the following data: 

sudo /etc/init.d/weewx status -l
 weewx.service - LSB: weewx weather system
   Loaded: loaded (/etc/init.d/weewx; generated)
   Active: active (exited) since Tue 2019-12-31 00:46:35 CET; 1 day 23h ago
     Docs: man:systemd-sysv-generator(8)
  Process: 343 ExecStart=/etc/init.d/weewx start (code=exited, status=0/SUCCESS)

Dec 31 00:46:35 raspberrypi weewx[425]: engine: Initializing engine
Dec 31 00:46:35 raspberrypi weewx[425]: engine: Loading station type Interceptor (user.interceptor)
Dec 31 00:46:36 raspberrypi weewx[425]: interceptor: MainThread: driver version is 0.47
Dec 31 00:46:36 raspberrypi weewx[425]: interceptor: MainThread: device type: observer
Dec 31 00:46:36 raspberrypi weewx[425]: interceptor: MainThread: sensor map: None
Dec 31 00:46:36 raspberrypi weewx[425]: interceptor: MainThread: mode is listen
Dec 31 00:46:36 raspberrypi weewx[425]: interceptor: MainThread: listen on 192.168.1.122:800
Dec 31 00:46:36 raspberrypi weewx[425]: engine: Import of driver failed: [Errno 99] Cannot assign requested address …error'>)
Dec 31 00:46:36 raspberrypi weewx[425]: engine: Unable to load driver: [Errno 99] Cannot assign requested address
Dec 31 00:46:36 raspberrypi weewx[425]:     ****  Exiting...
Hint: Some lines were ellipsized, use -l to show in full.



There is one more weird thing!
The bridge device has been reconfigured in the weather logger to a ‘customised server’
Server IP/ Hostname: 192.168.1.119
Server Port: 800
Server Type: PHP
Station ID: StationIDset
Password: PassStation


Setting these things via telnet is not possible:
telnet 192.168.1.122
Trying 192.168.1.122...
telnet: connect to address 192.168.1.122: Connection refused
telnet: Unable to connect to remote host


If I tell the terminal to listen on port 800 I get the following data:

sudo nc -l 800
GET /weatherstation/updateweatherstation.php?ID=StationIDset&PASSWORD=PassStation%2Bset&tempf=54.0&humidity=67&dewptf=43.3&windchillf=54.0&winddir=310&windspeedmph=0.00&windgustmph=0.00&rainin=0.00&dailyrainin=0.00&weeklyrainin=0.00&monthlyrainin=0.00&yearlyrainin=0.00&solarradiation=0.00&UV=0&indoortempf=53.8&indoorhumidity=67&baromin=29.91&dateutc=2012-08-22%202:14:45&softwaretype=WH2600%20V2.2.8&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0
Accept: */*
Connection: Close

For some reason the Host does not change no matter what I set I to even after a bridge reboot.
However I I understand correctly the raspberry can get the data as shown in the temperature reading above.
Is this a correct assumption?

I read about similar stations here in the forum but they usually had a wifi unit therefore the new post.
Please help me to make the right changes. I am totally lost what I should do now after some many hours and hours of trying.

Thank you
Lars


Gábor Szabados

unread,
Jan 2, 2020, 7:24:17 AM1/2/20
to weewx-user
Hi,

Try to remove address = 192.168.1.122. If it is still not working, then set the observerIP back to the default port and remove the port settings from the weewx config too.

If you read the interceptor manuals, you can see that interceptor can be run without weewx for testing too. Then you can see what is the right settings.
https://github.com/matthewwall/weewx-interceptor/blob/master/readme

I guess you have installed interceptor and not just weewx.

Otherwise the wifi and ethernet config is the same. Both uses the same network protocol TCP/IP. No difference. You can read those topics.

Best Regards,

Gabor Szabados

mwall

unread,
Jan 2, 2020, 12:13:14 PM1/2/20
to weewx-user
as gábor pointed out, you do not need to specify the address parameter.  that parameter is only necessary if you want to force the interceptor to listen on a specific network interface, and in that case the address must be a valid address for the computer on which weewx-interceptor is running.  this is useful if the computer on which weewx-interceptor is running has multiple interfaces, for example wired and wireless, and you are using it as a network bridge.

in your case, the pi is 192.168.1.119.  so when you specify "address=192.168.1.122" the driver will fail, because that address is not available on the pi - only .119 is available.

for the froggit WH2600 (a fine offset device) there are two different drivers you could use:  the weewx-interceptor, or the observer driver by aussie susan. 



they use two very different mechanisms to get data from the station.  the interceptor receives data transmitted by the observer - the observer thinks that the computer running weewx is a 'cloud' service.  the driver by susan uses the API of the observer itself, so that weewx can query the station for data.

here is some history about how these devices were reverse engineered:


m
Message has been deleted
Message has been deleted

Lars

unread,
Jan 2, 2020, 7:23:28 PM1/2/20
to weewx-user
It is weird 
- I removed that .122 
- hard reset the bridge
- edited the weather bridge software in another browser

and checked the log. And here you go the data is finally reaching weewx.
I have not managed to see the data in the browser at http://192.168.1.119///var/www/html/weewx/index.html (port 80 does not appear to be used by anything else, not sure why I can not reach it) 
but I guess this will be easier to get it working.

THANK YOU SOOO MUCH!!! :D
Really appreciate your help!!!

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: using rain_total 0.0 from yearlyrainin

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: firmware WH2600%20V2.2.8: baromin is barometer

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter rainin=0.00

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter monthlyrainin=0.00

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter realtime=1

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter rtfreq=5

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter PASSWORD=XXXXXXXXXXX

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter ID=StationIDset

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter softwaretype=WH2600%20V2.2.8

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter action=updateraw

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: ignored parameter weeklyrainin=0.00

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: raw packet: {'wind_speed': 0.0, 'humidity_in': 67.0, 'temperature_in': 54.7, 'barometer': 29.9, 'windchill': 72.1, 'dewpoint': 49.1, 'humidity_out': 44.0, 'uv': 0.0, 'radiation': 0.0, 'rain': 0.0, 'dateTime': 1578010336, 'temperature_out': 72.1, 'wind_dir': 105.0, 'rain_total': 0.0, 'usUnits': 1, 'wind_gust': 0.0}

Jan  3 01:12:17 raspberrypi weewx[425]: interceptor: MainThread: mapped packet: {'barometer': 29.9, 'windchill': 72.1, 'dewpoint': 49.1, 'outHumidity': 44.0, 'UV': 0.0, 'radiation': 0.0, 'rain': 0.0, 'dateTime': 1578010336, 'windDir': 105.0, 'outTemp': 72.1, 'windSpeed': 0.0, 'inHumidity': 67.0, 'inTemp': 54.7, 'windGust': 0.0, 'usUnits': 1}

Jan  3 01:12:27 raspberrypi weewx[425]: interceptor: MainThread: empty queue

Jan  3 01:12:33 raspberrypi weewx[425]: interceptor: ServerThread: GET: ID=StationIDset&PASSWORD=XXXX&tempf=72.1&humidity=44&dewptf=49.1&windchillf=72.1&winddir=105&windspeedmph=0.00&windgustmph=0.00&rainin=0.00&dailyrainin=0.00&weeklyrainin=0.00&monthlyrainin=0.00&yearlyrainin=0.00&solarradiation=0.00&UV=0&indoortempf=54.9&indoorhumidity=67&baromin=29.89&dateutc=2020-01-03%200:12:32&softwaretype=WH2600%20V2.2.8&action=updateraw&realtime=1&rtfreq=5

Jan  3 01:12:33 raspberrypi weewx[425]: interceptor: MainThread: raw data: ID=StationIDset&PASSWORD=PassStation&tempf=72.1&humidity=44&dewptf=49.1&windchillf=72.1&winddir=105&windspeedmph=0.00&windgustmph=0.00&rainin=0.00&dailyrainin=0.00&weeklyrainin=0.00&monthlyrainin=0.00&yearlyrainin=0.00&solarradiation=0.00&UV=0&indoortempf=54.9&indoorhumidity=67&baromin=29.89&dateutc=2020-01-03%200:12:32&softwaretype=WH2600%20V2.2.8&action=updateraw&realtime=1&rtfreq=5

Reply all
Reply to author
Forward
0 new messages