Ecowitt GW1000 and Passkey error

159 views
Skip to first unread message

Gert Andersen

unread,
May 20, 2020, 5:36:02 PM5/20/20
to weewx-user
Hi

Weewx4.0
Interceptor 0.54
Ubuntu 20.04
GW1000

I get this error:
INFO user.interceptor: unrecognized parameter b'PASSKEY=5E7384C4921D13C0A8572F8XXXXXXXXXXX
all the time. I have registered the device with Ecowitt.net. 

Can I do anything about that?

One more question, can I have more weewx instances listen to same interceptor port or is the port locked with the first instance?

Thanks
Gert

gjr80

unread,
May 20, 2020, 7:57:30 PM5/20/20
to weewx-user
Hi,

Not an error as such but an informational log entry that the interceptor driver did not recognise PASSKEY. It just happens that this unfortunately causes the passkey to be logged in full and unobfuscated. I have submitted a PR to Matthew to fix the issue, I am sure he will get around to it in due course. In the interim, you can fix the problem by applying the change to interceptor.py that is included in the PR.

Gary

Gert Andersen

unread,
May 21, 2020, 12:09:56 AM5/21/20
to weewx-user
Hi Gary

Thanks, working now.

Do you know if I can more weewx instances running using the same port 8000?

Gert

gjr80

unread,
May 21, 2020, 12:31:52 AM5/21/20
to weewx-user
Hi Gert,

Do you mean multiple WeeWX instances on the same machine listening to the same port? To be truthful I don't know but I would have expected there would be some contention there somewhere. It's an easy enough experiment to do though, you just need another WeeWX config file with the appropriate settings changed and then run directly.

Gary

Gert Andersen

unread,
May 21, 2020, 1:52:53 AM5/21/20
to weewx-user
Hi 

Yes multiple weewx instances listening to the same port. I have 2 weewx instances serving two different domain(different languages). It could be fine, if they can use the same port. Otherwise I need 2 GW1000 devices using different ports or..?

Gert

Gert Andersen

unread,
May 21, 2020, 2:19:27 AM5/21/20
to weewx-user
Hi

Unfortunately, it seems not possible to have 2 weewx instances using the same port:

May 21 08:13:52 GAND weewx-billeder[17360] INFO user.interceptor: driver version is 0.53
May 21 08:13:52 GAND weewx-billeder[17360] INFO user.interceptor: device type: ecowitt-client
May 21 08:13:52 GAND weewx-billeder[17360] INFO user.interceptor: mode is listen
May 21 08:13:52 GAND weewx-billeder[17360] INFO user.interceptor: listen on :8000
May 21 08:13:52 GAND weewx-billeder[17360] ERROR weewx.engine: Import of driver failed: [Errno 98] Address already in use (<class 'OSError'>)
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****  Traceback (most recent call last):
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/weewx/engine.py", line 103, in setupStation
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      self.console = loader_function(config_dict, self)
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/user/interceptor.py", line 315, in loader
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      return InterceptorDriver(**config_dict[DRIVER_NAME])
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/user/interceptor.py", line 2523, in __init__
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      self._device = self.DEVICE_TYPES.get(self._device_type)(**stn_dict)
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/user/interceptor.py", line 2298, in __init__
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      super(EcowittClient, self).__init__(
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/user/interceptor.py", line 429, in __init__
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      self._server = Consumer.TCPServer(address, port, handler)
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/home/weewx/bin/user/interceptor.py", line 584, in __init__
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      TCPServer.__init__(self, (address, int(port)), handler)
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/usr/lib/python3.8/socketserver.py", line 452, in __init__
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      self.server_bind()
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****    File "/usr/lib/python3.8/socketserver.py", line 466, in server_bind
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****      self.socket.bind(self.server_address)
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL weewx.engine:     ****  OSError: [Errno 98] Address already in use
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL __main__: Unable to load driver: [Errno 98] Address already in use
May 21 08:13:52 GAND weewx-billeder[17360] CRITICAL __main__:     ****  Exiting...

Gert

gjr80

unread,
May 21, 2020, 2:39:09 AM5/21/20
to weewx-user
Well that answers that question :) Was reading through the interceptor driver and was starting to come to that conclusion.

Gary

Gert Andersen

unread,
May 21, 2020, 4:28:19 AM5/21/20
to weewx-user
Hi Gary

Thanks for looking.

It works with multiple instances listening to different ports, so the solution, buy more GW1000 devices.

I'm also using mqtt and the solution here was to have 1 instance publishing and the other instances just subscribing  to the topic. Using Belchertown.

Maybe in the future, Interceptor can do the same.

Gert

galfert

unread,
May 25, 2020, 7:29:21 AM5/25/20
to weewx-user
In the future maybe WeeWX will finally support the GW1000 local network API instead of needing to capture Ecowitt protocol packets. The difference is pull versus push. You would then not need to configure the GW1000 to push data from the GW1000. Other software; Cumulus MX, Meteobridge, and Weather-Display use the API pull method.

NanoG5Kite

unread,
Jun 2, 2020, 5:05:48 PM6/2/20
to weewx-user
You possible don´t need any more to buy additional GW1000 devices.

I played this the past days and Oliver the developer of the "Generic" Foshkplugin was very helpful to me.
He currently works on the English Doku of his Plugin:


Currently I run a GW1000 (Froggit DP1500) feeding my Iobroker Home Automation via Node-Red, as well:

Now the Weewx Interceptor Driver with the Raw Ecowitt String. It´s possible to define parallel up to10 forwaring targets...

However, as Oliver supported me today, it´s necessary to run the patched Version of the Interceport Driver interceptor.py File:

br,

Matthias
Reply all
Reply to author
Forward
0 new messages