-------- Forwarded Message --------
Subject: [weewx-user] Re: Pulling my hair - one weird issue after the other [4]
Date:   Tue, 3 Aug 2021 14:28:28 +0200
From:   Rainer Lang <[email protected]>
To:     Konrad Skeri Ekblad <[email protected]>



I think this side effect is due to a recent change of Interceptor.py to show also the hardware name in the "about this weather station" section - the change fell somewhat too short. I had already been searching myself for a solution, but gave up due to lack of time and decided to bear with this message before every archiving cycle.

If you want to get rid of this log message, you would have to walk through the Interceptor.py coding and add some additional filtering. Without that hardware name change the PASSKEY info was filtered out. Now the program flow is different. It will probably have to be filtered out a 2nd time or only at some other place now.

On 03.08.2021 10:55, Konrad Skeri Ekblad wrote:
Actually, the console tries to post even without a path entered, it just doesn't specify a request-URI in the HTTP POST header causing an error 400 on the server side. I never changed the path setting from when it was working, so it must have been a side effect from a firmware update done during the months my WeeWX was down. Good thing to know for people having the same trouble in the future. I also changed the path from /path? as suggested in the GitHub discussion I found to just / and that works as well. However, in both cases I get the following line in the message log every time the station sends an update:

Aug  3 10:51:33 localhost journal[2825]: weewx[2825] INFO user.interceptor: unrecognized parameter b'PASSKEY=9879…

While not interfering with function it clutters up the log making it harder to read. Guess that's a topic for the GitHub issue tracker though.

Konrad

tisdag 3 augusti 2021 kl. 01:35:43 UTC+2 skrev [email protected]:

    By mistake I sent this reply only to the OPer - now forward also
    to the group for information and documentation

    It's a common mistake when using the custom server function of a
    Fine Offset (clone) console in ecowitt protocol
    to leave the path entry in the WSView app empty.
    Even though weewx (the interceptor driver) doesn't care about any
    path, the console still does.

    If there is no entry at all, the console will not post !!!

    Therefore at least "/" without "" has to be entered into the path
    field in the WSView app.

    This is for weewx.

    When posting via custom server function to a web site, the path
    has to be meaningful and point to the HTML or www root of the
    server respectively the path from there where the posting will be
    picked up e.g. by some index.php file.

    The posting in Ecowitt protocol will always look like

    
http://IP-or-URL/path-from-wsview-app/index.php&PASSKEY=xxxxxxxxxxxxxx&stationtype=
    
<http://IP-or-URL/path-from-wsview-app/index.php&PASSKEY=xxxxxxxxxxxxxx&stationtype=>
    .....

    the interceptor driver filters out the PASSKEY, stationtype and
    other not observation related parts of the posted string and takes
    only the observation related portions e.g. windgustmph=5.82



    -------- Forwarded Message --------
    Subject:    [weewx-user] Re: Pulling my hair - one weird issue after
    the other [3]
    Date:       Mon, 2 Aug 2021 16:05:30 +0200
    From:       Rainer Lang <[email protected]>
    To:         Konrad Skeri Ekblad <[email protected]>



    Did you enter a path in the WSView app ?
    There must be at least a "/" - even though weewx doesn't care, the
    console does.
    If there is no path entered, it doesn't post via the custom server
    function.

    On 02.08.2021 14:55, Konrad Skeri Ekblad wrote:
    Running WeeWX directly instead the output in /var/log/messages is
    this:

    Aug  2 14:36:59 localhost systemd[1]: Starting SYSV: start and
    stop the weewx weather system...
    Aug  2 14:36:59 localhost journal[2697]: weewx[2697] INFO
    __main__: Initializing weewx version 4.5.1
    Aug  2 14:36:59 localhost journal[2697]: weewx[2697] INFO
    __main__: Using Python 3.6.8 (default, Mar 19 2021, 05:13:41)
    #012[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)]
    Aug  2 14:36:59 localhost journal[2697]: weewx[2697] INFO
    __main__: Platform
    Linux-4.18.0-305.10.2.el8_4.x86_64-x86_64-with-centos-8.4.2105
    Aug  2 14:36:59 localhost journal[2697]: weewx[2697] INFO
    __main__: Locale is 'sv_SE.UTF-8'
    Aug  2 14:36:59 localhost journal[2697]: weewx[2697] INFO
    __main__: PID file is /var/run/weewx.pid
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    __main__: Using configuration file /etc/weewx/weewx.conf
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    __main__: Debug is 1
    Aug  2 14:36:59 localhost weewx[2688]: Starting weewx: [     OK     ]
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.engine: Loading station type Interceptor (user.interceptor)
    Aug  2 14:36:59 localhost systemd[1]: Started SYSV: start and
    stop the weewx weather system.
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    user.interceptor: driver version is 0.53
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    user.interceptor: device type: ecowitt-client
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    user.interceptor: mode is listen
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    user.interceptor: listen on :8000
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    user.interceptor: sensor map: {'pressure': 'pressure',
    'barometer': 'barometer', 'outHumidity': 'humidity_out',
    'inHumidity': 'humidity_in', 'outTemp': 'temperature_out',
    'inTemp': 'temperature_in', 'windSpeed': 'wind_speed',
    'windGust': 'wind_gust', 'windDir': 'wind_dir', 'windGustDir':
    'wind_gust_dir', 'radiation': 'solar_radiation', 'dewpoint':
    'dewpoint', 'windchill': 'windchill', 'rain': 'rain', 'rainRate':
    'rain_rate', 'UV': 'uv', 'txBatteryStatus': 'battery',
    'extraTemp1': 'temperature_1', 'extraTemp2': 'temperature_2',
    'extraTemp3': 'temperature_3', 'extraHumid1': 'humidity_1',
    'extraHumid2': 'humidity_2', 'soilTemp1': 'soil_temperature_1',
    'soilTemp2': 'soil_temperature_2', 'soilMoist1':
    'soil_moisture_1', 'soilMoist2': 'soil_moisture_2', 'soilMoist3':
    'soil_moisture_3', 'soilMoist4': 'soil_moisture_4', 'leafWet1':
    'leafwetness_1', 'leafWet2': 'leafwetness_2', 'pm2_5': 'pm2_5',
    'extraTemp4': 'temperature_4', 'extraTemp5': 'temperature_5',
    'extraTemp6': 'temperature_6', 'extraTemp7': 'temperature_7',
    'extraTemp8': 'temperature_8', 'extraHumid3': 'humidity_3',
    'extraHumid4': 'humidity_4', 'extraHumid5': 'humidity_5',
    'extraHumid6': 'humidity_6', 'extraHumid7': 'humidity_7',
    'extraHumid8': 'humidity_8', 'soilTemp3': 'soil_temperature_3',
    'soilTemp4': 'soil_temperature_4'}
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.engine: StdConvert target unit is 0x1
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.engine: Archive will use data binding wx_binding
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.engine: Record generation will be attempted in 'hardware'
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.engine: Using archive interval of 300 seconds (specified in
    weewx configuration)
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.restx: StationRegistry: Registration not requested.
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.restx: Wunderground: Posting not enabled.
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.restx: PWSweather: Posting not enabled.
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.restx: CWOP: Posting not enabled.
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.restx: WOW: Posting not enabled.
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.restx: AWEKAS: Posting not enabled.
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    __main__: Starting up weewx version 4.5.1
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.manager: Starting backfill of daily summaries
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.manager: Daily summaries up to date
    Aug  2 14:36:59 localhost journal[2701]: weewx[2701] INFO
    weewx.engine: Starting main packet loop.

    After that there are no more log entries. Been running about 10
    minutes now.

    systemctr status weewx gives the following info:
    ● weewx.service - SYSV: start and stop the weewx weather system
       Loaded: loaded (/etc/rc.d/init.d/weewx; generated)
       Active: active (running) since Mon 2021-08-02 14:36:59 CEST;
    10min ago
         Docs: man:systemd-sysv-generator(8)
      Process: 2671 ExecStop=/etc/rc.d/init.d/weewx stop
    (code=exited, status=0/SUCCESS)
      Process: 2688 ExecStart=/etc/rc.d/init.d/weewx start
    (code=exited, status=0/SUCCESS)
        Tasks: 2 (limit: 11377)
       Memory: 13.5M
       CGroup: /system.slice/weewx.service
               └─2701 python3 /usr/share/weewx/weewxd --daemon
    --pidfile=/var/run/weewx.pid /etc/weewx/weewx.conf

    aug 02 14:45:29 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:45:39 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:45:49 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:45:59 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:46:09 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:46:19 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:46:29 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:46:39 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:46:49 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue
    aug 02 14:46:59 localhost.localdomain python3[2701]: weewx[2701]
    DEBUG user.interceptor: empty queue

    According to Wireshark the weather station connects to WeeWX
    every minute, but receives the 400 error code.
    Stopping WeeWX, Wireshark now shows that the weather station
    instead of the SYN ACK response to the low level TCP handshake
    instead receives a RST ACK, indicating that the port now is
    closed for communication.

    Konrad
    måndag 2 augusti 2021 kl. 13:02:50 UTC+2 skrev gjr80:

        Have a look in the other log files on your system, it should
        be there somewhere. When running the interceptor driver
        directly the (WeeWX) logging setup is somewhat abbreviated so
        it could be different to when WeeWX is run.

        Gary

        On Monday, 2 August 2021 at 20:47:01 UTC+10 Konrad Skeri
        Ekblad wrote:

            If I start WeeXW (still using simulator driver) I get its
            log messages in /var/log/messages, however, running the
            interceptor driver directly does not produce any output
            in this log file.

            Konrad

            måndag 2 augusti 2021 kl. 12:22:05 UTC+2 skrev gjr80:

                When you just ran the interceptor driver directly
                there should have been output to the console as well
                as log output in the WeeWX log, not sure what log
                file it will be in as I am not a Centos user. Can you
                please post the log output exactly as it appears in
                the log.

                Gary

                On Monday, 2 August 2021 at 19:17:12 UTC+10 Konrad
                Skeri Ekblad wrote:

                    I did a complete reinstallation of the server
                    with Centos 8. Fresh install of WeeWX from
                    repository using yum as described on web page.
                    Installed interceptor driver according to set up
                    instructions.
                    Running PYTHONPATH=/usr/share/weewx python3
                    user/interceptor.py --debug --port=8000
                    --device=ecowitt-client for almost an hour only
                    gives the following output:

                    raw data:
                    raw packet: {'dateTime': 1627891880, 'usUnits': 1}
                    mapped packet: {'dateTime': 1627891880, 'usUnits': 1}

                    Using Wireshark to monitor the network traffic I
                    notice this:
                    Weatherstation to WeeWX server:
                    POST  HTTP/1.1
                    HOST: 192.168.129.10
                    Connection: Close
                    Content-Type: application/x-www-form-urlencoded
                    Content-Length: 415
                    
PASSKEY=**replaced**&stationtype=EasyWeatherV1.6.0&dateutc=2021-08-02+08:11:21&tempinf=77.5&humidityin=42&baromrelin=29.894&baromabsin=29.374&tempf=59.9&humidity=76&winddir=25&windspeedmph=2.7&windgustmph=3.4&maxdailygust=6.9&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.000&totalrainin=53.673&solarradiation=355.26&uv=3&model=WS2900

                    Response from WeeWX server:
                    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                            "http://www.w3.org/TR/html4/strict.dtd
                    <http://www.w3.org/TR/html4/strict.dtd>">
                    <html>
                        <head>
                            <meta http-equiv="Content-Type"
                    content="text/html;charset=utf-8">
                            <title>Error response</title>
                        </head>
                        <body>
                            <h1>Error response</h1>
                            <p>Error code: 400</p>
                            <p>Message: Bad HTTP/0.9 request type
                    ('POST').</p>
                            <p>Error code explanation:
                    HTTPStatus.BAD_REQUEST - Bad request syntax or
                    unsupported method.</p>
                        </body>
                    </html>

                    According to WireShark there is this
                    communication about once each minute, but I have
                    only one entry in the terminal.
                    onsdag 28 juli 2021 kl. 02:24:31 UTC+2 skrev gjr80:

                        You have changed many things in your setup
                        and even though you appear to have reverted
                        to your original working configuration I
                        would be starting from scratch as per the
                        interceptor drive readme.I would be running
                        the driver directly and then making sure you
                        use the —debug command line option. Post the
                        console output here. Let’s see where that
                        gets us.

                        Gary
                        On Wednesday, 28 July 2021 at 08:20:26 UTC+10
                        Konrad Skeri Ekblad wrote:

                            I have been using weewx on a Raspberry Pi
                            for about two years now. After my old
                            Fine Offset died soon after I moved from
                            pywws I bought a Eurochron WS2900 which I
                            got running using the interceptor driver,
                            and that worked fine until the weather
                            station stopped giving temperature
                            readings this winter. I was able to fix
                            that last week (bad connector on the
                            cable from the temperature sensor to the
                            circuit board in the sensor array) but
                            when I reconnected it to weewx I started
                            to experience various odd things. The
                            unit shows correct data on its display
                            and sends data to weewx, and the webpages
                            rendered by weewx are correct (e.g.
                            temperature ranging between 16°C and 28°C
                            the other day) but the temperatures sent
                            to Windy (and others) by weewx varies
                            from -2°C to 21°C for the same day.
                            Thinking that there might be some API
                            change or something during the half year
                            my station was offline, and that I for
                            some time have had thoughts of moving it
                            to a virtual server on my ESXi station
                            anyway, I set up a Centos 8 machine and
                            installed weewx on it. Simulator works
                            fine, but using the same interceptor
                            settings as on my Raspberry Pi I don't
                            get any data (IP updated in the weather
                            station settings).

                            Using
                            PYTHONPATH=/usr/share/weewx python3 -m
                            user.interceptor --debug --mode=listen
                            --port=8000 --device=ecowitt-client
                            I was able to once capture this after
                            listening maybe one hour:
                            raw data:
                            raw packet: {'dateTime': 1627416663,
                            'usUnits': 1}
                            mapped packet: {'dateTime': 1627416663,
                            'usUnits': 1}
                            Yay! A timestamp!

                            Trying to connect to port 8000 from
                            another computer in the network shows
                            that the port is open.

                            Thinking there is some problem with the
                            weather station I have reseted it, but no
                            change. The device is by itself directly
                            uploading to Weather Underground and some
                            other sites, and that works.

                            Frustrated I one again change the local
                            IP the weather station should send data
                            to to the Raspberry Pi, but now I don't
                            get any data there at all.

                            This is the interceptor settings of
                            weewx.conf:

                            …
                                station_type = Interceptor
                            …
                            
##############################################################################

                            [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
                                #   wu-client - any hardware that
                            uses the weather underground protocol
                            #    device_type = observer
                                device_type = ecowitt-client
                                port = 8000

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

                            I'm not sure what more is relevant logs
                            to post.
                            I see no dropped packages originating
                            from the weather station in the firewall log.

                            Does anyone have any idea how I should
                            proceed or what I should try?

                            regards
                            Konrad Skeri Ekblad

-- 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].
    To view this discussion on the web visit
    
https://groups.google.com/d/msgid/weewx-user/aeab950d-a2c4-4039-8750-b03b9b21fa64n%40googlegroups.com
    
<https://groups.google.com/d/msgid/weewx-user/aeab950d-a2c4-4039-8750-b03b9b21fa64n%40googlegroups.com?utm_medium=email&utm_source=footer>.


--
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] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/fd503c01-014a-4fe9-bd99-db3de185272dn%40googlegroups.com <https://groups.google.com/d/msgid/weewx-user/fd503c01-014a-4fe9-bd99-db3de185272dn%40googlegroups.com?utm_medium=email&utm_source=footer>.


--
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/e0aee5f9-0a58-9d8e-b9e8-f5f8b92aabfd%40gmail.com.

Reply via email to