WH4000SE - Interceptor - Weewx stopped working

73 views
Skip to first unread message

Ville Westerholm

unread,
Sep 16, 2020, 7:08:06 AM9/16/20
to weewx-user
Configuration
  • Froggit WH4000SE, firmware updated yesterday
    • Connected using Wunderground simulator, 
      • path: (empty)
      • port: 8081
      • Station id: id,
      • Station key: key
      • port: 8081
  • WeeWx versio 3.9.2-1
    • Using Interceptor (updated today)
      • device_type: wu-client
      • port: 8081
This configuration was working ok until last week when no data was update in weewx. Short analysis showed WH4000 was not any more  seen in the mobile app used to configure the device (WS View).

I reconfigured the device. This worked only after disabling 5 Ghz Wifi network (this might have been the original reason for my problems). 

After this sending of weather data to Ecowitt and Weather Underground was restored. 
But still no data was received in weewx. I played around using different wunderground simulator parameters in WS View (I do not have record of the original working ones). No help. The last test was to run interceptor in the debug mode. I saw only the following messages:
raw packet: {'usUnits': 1, 'dateTime': 1600253325}
mapped packet: {'usUnits': 1, 'dateTime': 1600253325}

To me this look like WH4000 is not sending any weather data any more using underground simulator. Anybody, any ideas?


Ville Westerholm

unread,
Sep 16, 2020, 9:13:35 AM9/16/20
to weewx-user
I turned on debugging in weewx seeing the following messages:
Sep 16 16:04:14 fuji weewx[23780]: message repeated 2 times: [ interceptor: MainThread: empty queue]
Sep 16 16:04:14 fuji weewx[23780]: interceptor: ServerThread: GET:
Sep 16 16:04:14 fuji weewx[23780]: interceptor: MainThread: raw data:
Sep 16 16:04:14 fuji weewx[23780]: interceptor: MainThread: raw packet: {'usUnits': 1, 'dateTime': 1600261455}
Sep 16 16:04:14 fuji weewx[23780]: interceptor: MainThread: mapped packet: {'usUnits': 1, 'dateTime': 1600261455}
That is, basically same as when running Interceptor in the debug mode

Then I captured network data with tcpdump -A (extract from the dump, fuji is weewx server and ESP-07209F is the weather station, 8089 is now the port I am testing):
16:00:44.662596 IP ESP-07209F.fritz.box.13045 > fuji.fritz.box.8089: 
.GET ID=id&PASSWORD=key&indoortempf=71.6&tempf=61.7. ... &dateutc=2020-09-16%2013:00:43&softwaretype=EasyWeatherV1.5.3&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0...
...
Connection: Close
16:00:44.662716 IP fuji.fritz.box.8089 > ESP-07209F.fritz.box.13045: 
E..
16:00:44.664764 IP fuji.fritz.box.8089 > ESP-07209F.fritz.box.13045: 
..HTTP/1.0 200 OK
...
So, weather station is sending info and interceptor is responding OK. Problem in Interceptor?

Ville Westerholm

unread,
Sep 16, 2020, 9:28:49 AM9/16/20
to weewx-user
Also tested 
device_type = ecowitt-client

Nothing new in syslog, but in the tcp dump I see weather data sent as http post and Interceptor is responding
Error code 400
Bad HTTP/0.9 request type ('POST').

<

Ville Westerholm

unread,
Sep 16, 2020, 10:59:25 AM9/16/20
to weewx-user
Speaking to myself :-)

I have never written any Python, but when I changed interceptor.py as follows:
         def do_GET(self):
            # get the query string from an HTTP GET
            logdbg('GET original url: %s' % self.path)
            # data = urlparse.urlparse(self.path).query
            data = self.path
            logdbg('GET: %s' % _obfuscate_passwords(data))
            Consumer.queue.put(data)
            self.reply()

It started working :-)

Reply all
Reply to author
Forward
0 new messages