An old log entry remained after some earlier restructuring, try b4: wget https://raw.githubusercontent.com/gjr80/weewx-gw1000/master/bin/user/gw1000.py
Gary On Tuesday 23 January 2024 at 04:55:32 UTC+10 michael.k...@gmx.at wrote: > When I configure like so > [GW1000] > debug_loop = True > > # This section is for the Ecowitt Gateway driver. > > # How often to poll the API, default is every 20 seconds: > poll_interval = 10 > ip_address = 10.0.1.85 > max_tries = 360 > > # The driver to use: > driver = user.gw1000 > > [GW1000Service] > *debug_loop = True* > > # This section is for the Ecowitt Gateway driver. > > # How often to poll the API, default is every 20 seconds: > poll_interval = 10 > ip_address = 10.0.1.86 > max_tries = 360 > > # The driver to use: > driver = user.gw1000 > > [[field_map]] > ws90_windDir = winddir > ws90_windSpeed = windspeed > ws90_windGust = gustspeed > ws90_daymaxwind = daymaxwind > ws90_uvradiation = uv > ws90_UV = uvi > ws90_luminosity = light > p_rain = p_rain > p_stormRain = p_rainevent > p_rainRate = p_rainrate > p_dayRain = p_rainday > p_weekRain = p_rainweek > p_monthRain = p_rainmonth > p_yearRain = p_rainyear > > WeeWX exits with > > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Initializing weewxd > version 5.0.0 > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Command line: > /home/pi/weewx-venv/bin/weewxd > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Using Python 3.9.2 > (default, Feb 28 2021, 17:03:44) > [GCC 10.2.1 20210110] > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Located at > /home/pi/weewx-venv/bin/python3 > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Platform > Linux-6.1.42-v8+-aarch64-with-glibc2.31 > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Locale: 'de_AT.UTF-8' > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Entry path: > /home/pi/weewx-venv/lib/python3.9/site-packages/weewxd.py > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: WEEWX_ROOT: > /home/pi/weewx-data > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Configuration file: > /home/pi/weewx-data/weewx.conf > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: User module: > /home/pi/weewx-data/bin/user > 2024-01-22 19:49:48 weewxd[119797] INFO weewxd: Debug: 0 > 2024-01-22 19:49:48 weewxd[119797] INFO weewx.engine: Loading station type > GW1000 (user.gw1000) > 2024-01-22 19:49:48 weewxd[119797] INFO user.gw1000: GatewayDriver: > version is 0.6.0b2 > 2024-01-22 19:49:48 weewxd[119797] INFO user.gw1000: device address > is 10.0.1.85:45000 > 2024-01-22 19:49:48 weewxd[119797] INFO user.gw1000: poll interval is > 10 seconds > 2024-01-22 19:49:48 weewxd[119797] INFO user.gw1000: GatewayService: > version is 0.6.0b2 > 2024-01-22 19:49:48 weewxd[119797] INFO user.gw1000: max age of API > data to be used is 60 seconds > 2024-01-22 19:49:50 weewxd[119797] INFO user.gw1000: GatewayCollector > thread has been terminated > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: Caught unrecoverable > exception: > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** > 'GatewayService' object has no attribute 'field_map' > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** Traceback > (most recent call last): > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** File > "/home/pi/weewx-venv/lib/python3.9/site-packages/weewxd.py", line 160, in > main > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** engine = > weewx.engine.StdEngine(config_dict) > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** File > "/home/pi/weewx-venv/lib/python3.9/site-packages/weewx/engine.py", line 89, > in __init__ > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** > self.loadServices(config_dict) > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** File > "/home/pi/weewx-venv/lib/python3.9/site-packages/weewx/engine.py", line > 157, in loadServices > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** obj = > weeutil.weeutil.get_object(svc)(self, config_dict) > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** File > "/home/pi/weewx-data/bin/user/gw1000.py", line 1389, in __init__ > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** loginf(' > field map is %s' % natural_sort_dict(self.field_map)) > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** > AttributeError: 'GatewayService' object has no attribute 'field_map' > > 2024-01-22 19:49:50 weewxd[119797] CRITICAL weewxd: **** Exiting. > > It is happening when this is configured, (not when in [GW1000]): > > [GW1000Service] > *debug_loop = True* > > gjr80 schrieb am Montag, 22. Januar 2024 um 12:21:22 UTC+1: > >> Without seeing some logs it's hard to say much more than some general >> comments. I would suggest leaving debug = 0, but set debug_loop = True >> under both [GW1000] and [GW1000Service] stanzas in weewx.conf. Restart >> WeeWX,. This will log the field maps in use as well as a lot of packets in >> various states of processing. Just post a log extract showing the full >> WeeWX start up and a few loop packets (by a few loop packets I mean around >> 30 seconds of log). This should give a clear indication of what is going on. >> >> Gary >> >> On Monday 22 January 2024 at 17:11:56 UTC+10 michael.k...@gmx.at wrote: >> >>> Here is what I've observed, I can't tell if everything is an issue or if >>> it is working as designed. (What I am trying to achieve, I will post in >>> another reply) >>> >>> I've configured an instance which reads from one GW2000 device >>> (receiving from a WS68 sensor array) configured as driver, and another >>> GW2000 device (receiving from a WS90 sensor array) as service. I've >>> configured both with the same poll_interval: >>> >>> [GW1000] #WS68 >>> # This section is for the Ecowitt Gateway driver. >>> >>> # How often to poll the API, default is every 20 seconds: >>> poll_interval = 10 >>> ip_address = 10.0.1.85 >>> max_tries = 360 >>> >>> # The driver to use: >>> driver = user.gw1000 >>> >>> [GW1000Service] #WS90 >>> # This section is for the Ecowitt Gateway driver. >>> >>> # How often to poll the API, default is every 20 seconds: >>> poll_interval = 10 >>> ip_address = 10.0.1.86 >>> max_tries = 360 >>> >>> # The driver to use: >>> driver = user.gw1000 >>> >>> [[field_map]] >>> ws90_windDir = winddir >>> ws90_windSpeed = windspeed >>> ws90_windGust = gustspeed >>> ws90_daymaxwind = daymaxwind >>> ws90_uvradiation = uv >>> ws90_UV = uvi >>> ws90_luminosity = light >>> p_rain = p_rain >>> p_stormRain = p_rainevent >>> p_rainRate = p_rainrate >>> p_dayRain = p_rainday >>> p_weekRain = p_rainweek >>> p_monthRain = p_rainmonth >>> p_yearRain = p_rainyear >>> >>> Starting weewxd, there is one LOOP every 10 Seconds, it seems it is >>> containing values from the device configured in [GW1000Service] including >>> the values from [[field_map]], which I didn't expect from skimming >>> through the driver's code. In my understanding [[field_map]] >>> replaces the default field map, leading to a LOOP packet only containing >>> the configured [[field_map]], but obviously I was wrong :) : >>> >>> LOOP: 2024-01-22 06:16:03 CET (1705900563) 'altimeter': >>> '1025.4477187548832', 'appTemp': '-6.253423533619011', 'barometer': >>> '1028.5013923390995', 'cloudbase': '1041.4809012741189', 'dateTime': >>> '1705900563', 'daymaxwind': '6.6', 'dayRain': '0.0', 'dewpoint': >>> '-6.533418604408247', 'ET': 'None', 'extraHumid6': '59', 'extraHumid7': >>> '61', 'extraHumid8': '57', 'extraTemp6': '14.7', 'extraTemp7': '20.5', >>> 'extraTemp8': '21.3', 'heatindex': '-1.5999999999999994', 'humidex': >>> '-1.6', 'inDewpoint': '9.08853654596964', 'inHumidity': '51', 'inTemp': >>> '19.5', 'lightning_distance': 'None', 'lightning_last_det_time': >>> '1705345360', 'lightning_strike_count': '0', 'lightningcount': '0', >>> 'luminosity': '0.0', 'maxSolarRad': '0.0', 'monthRain': '50.4', >>> 'outHumidity': '69', 'outTemp': '-1.6', 'p_dayRain': '0.0', 'p_monthRain': >>> '26.5', 'p_rain': '0.0', 'p_rainRate': '0.0', 'p_stormRain': '0.0', >>> 'p_weekRain': '0.0', 'p_yearRain': '26.5', 'pressure': '973.1', >>> 'radiation': '0.0', 'rain': '0.0', 'rainRate': '0.0', 'relbarometer': >>> '1025.9', 'stormRain': '0.0', 'usUnits': '17', 'UV': '0', 'uvradiation': >>> '0.0', 'weekRain': '0.0', 'wh31_ch6_batt': '0', 'wh31_ch6_sig': '4', >>> 'wh31_ch7_batt': '0', 'wh31_ch7_sig': '4', 'wh31_ch8_batt': '0', >>> 'wh31_ch8_sig': '4', 'wh32_batt': '0', 'wh32_sig': '4', 'wh40_batt': >>> '1.44', 'wh40_sig': '4', 'wh57_batt': '5', 'wh57_sig': '4', 'windchill': >>> '-5.128915747986651', 'windDir': '206', 'windGust': '4.2', 'windrun': >>> 'None', 'windSpeed': '2.7', '*ws90_batt*': '3.28', 'ws90_daymaxwind': >>> '7.7', 'ws90_luminosity': '0.0', 'ws90_sig': '4', 'ws90_UV': '0', >>> 'ws90_uvradiation': '0.0', '*ws90_windDir*': '206', 'ws90_windGust': >>> '2.6', 'ws90_windSpeed': '2.1', 'yearRain': '50.4' >>> >>> But On RPi4, polling the devices seems to drift apart quite quickly, >>> producing individual LOOP packets, containing the individual values (I >>> haven't observed that happening on my Desktop, so this might be connected >>> to CPU power, maybe it happens after a longer period of time) >>> These LOOP packets contain values from the device configured in >>> [GW1000Service] and from the device configured in [ GW1000 ] in that >>> order, but *without values from the configured* [[field_map]] in >>> [GW1000Service] - I didn't expect that. >>> *(Maybe also worth noting is that the batt/sig values from my WS68 are >>> tagged as wh68, which I consider an undesired typo in the driver's map)* >>> >>> LOOP: 2024-01-22 06:16:14 CET (1705900574) 'altimeter': >>> '1025.4477187548832', 'appTemp': '-6.463423533619011', 'barometer': >>> '1028.5013923390995', 'cloudbase': '1041.4809012741189', 'dateTime': >>> '1705900574', 'daymaxwind': '6.6', 'dayRain': '0.0', 'dewpoint': >>> '-6.533418604408247', 'ET': 'None', 'extraHumid6': '59', 'extraHumid7': >>> '61', 'extraHumid8': '57', 'extraTemp6': '14.7', 'extraTemp7': '20.5', >>> 'extraTemp8': '21.3', 'heatindex': '-1.5999999999999994', 'humidex': >>> '-1.6', 'inDewpoint': '9.08853654596964', 'inHumidity': '51', 'inTemp': >>> '19.5', 'lightning_distance': 'None', 'lightning_last_det_time': >>> '1705345360', 'lightning_strike_count': '0', 'lightningcount': '0', >>> 'luminosity': '0.0', 'maxSolarRad': '0.0', 'monthRain': '50.4', >>> 'outHumidity': '69', 'outTemp': '-1.6', 'p_dayRain': '0.0', 'p_monthRain': >>> '26.5', 'p_rain': '0.0', 'p_rainRate': '0.0', 'p_stormRain': '0.0', >>> 'p_weekRain': '0.0', 'p_yearRain': '26.5', 'pressure': '973.1', >>> 'radiation': '0.0', 'rain': '0.0', 'rainRate': '0.0', 'relbarometer': >>> '1025.9', 'stormRain': '0.0', 'usUnits': '17', 'UV': '0', 'uvradiation': >>> '0.0', 'weekRain': '0.0', 'wh31_ch6_batt': '0', 'wh31_ch6_sig': '4', >>> 'wh31_ch7_batt': '0', 'wh31_ch7_sig': '4', 'wh31_ch8_batt': '0', >>> 'wh31_ch8_sig': '4', 'wh32_batt': '0', 'wh32_sig': '4', 'wh40_batt': >>> '1.44', 'wh40_sig': '4', 'wh57_batt': '5', 'wh57_sig': '4', 'windchill': >>> '-5.422365775103767', 'windDir': '181', 'windGust': '4.2', 'windrun': >>> 'None', 'windSpeed': '3.0', '*ws90_batt*': '3.28', 'ws90_sig': '4', >>> 'yearRain': '50.4' >>> LOOP: 2024-01-22 06:16:14 CET (1705900574) 'altimeter': >>> '1025.5520572032206', 'appTemp': '-5.833423533619011', 'barometer': >>> '1028.6070856277995', 'cloudbase': '1041.4809012741189', 'dateTime': >>> '1705900574', 'daymaxwind': '7.7', 'dayRain': '0.0', 'dewpoint': >>> '-6.533418604408247', 'ET': 'None', 'extraHumid6': '59', 'extraHumid7': >>> '61', 'extraHumid8': '57', 'extraTemp6': '14.7', 'extraTemp7': '20.5', >>> 'extraTemp8': '21.3', 'heatindex': '-1.5999999999999994', 'humidex': >>> '-1.6', 'inDewpoint': '8.247305751926792', 'inHumidity': '47', 'inTemp': >>> '19.9', 'lightning_distance': 'None', 'lightning_last_det_time': 'None', >>> 'lightning_strike_count': '0', 'lightningcount': '0', 'luminosity': '0.0', >>> 'maxSolarRad': '0.0', 'monthRain': '50.4', 'outHumidity': '69', 'outTemp': >>> '-1.6', 'pressure': '973.2', 'radiation': '0.0', 'rain': '0.0', 'rainRate': >>> '0.0', 'relbarometer': '1026.0', 'stormRain': '0.0', 'usUnits': '17', 'UV': >>> '0', 'uvradiation': '0.0', 'weekRain': '0.0', 'wh31_ch6_batt': '0', >>> 'wh31_ch6_sig': '4', 'wh31_ch7_batt': '0', 'wh31_ch7_sig': '4', >>> 'wh31_ch8_batt': '0', 'wh31_ch8_sig': '4', 'wh32_batt': '0', 'wh32_sig': >>> '4', 'wh40_batt': '1.44', 'wh40_sig': '4', 'wh57_batt': '5', 'wh57_sig': >>> '4', '*wh68_batt*': '1.88', '*wh68_sig*': '1', 'windchill': >>> '-4.448607638687528', 'windDir': '205', 'windGust': '3.1', 'windrun': >>> 'None', 'windSpeed': '2.1', 'yearRain': '50.4' >>> >>> >>> michael.k...@gmx.at schrieb am Samstag, 20. Januar 2024 um 10:58:56 >>> UTC+1: >>> >>>> Thank you! I'll see how far I get and I'll consider the mentioned >>>> drawbacks. >>>> gjr80 schrieb am Samstag, 20. Januar 2024 um 10:47:29 UTC+1: >>>> >>>>> The Gateway driver has supported simultaneous driver/service operation >>>>> since v0.5.0b5. It is not a configuration I recommend due to the >>>>> fragility >>>>> of the configuration (if the driver crashes or the device using the >>>>> driver >>>>> fails/locks up data from the service device is also lost) and the ease of >>>>> running dual WeeWX instances on the same device (particularly under WeeWX >>>>> v5). >>>>> >>>>> Notwithstanding, if you wish to use simultaneous driver/service >>>>> operation the driver configuration is placed under the [GW1000] stanza as >>>>> normal and the service configuration is placed under the [GW1000Service] >>>>> stanza. Otherwise the driver and service are configured as per >>>>> independent >>>>> operation. >>>>> >>>>> Finally, be aware this is not a configuration I routinely, in fact I >>>>> suspect it has not bee touched since it was added to v0.5.0b5 so there >>>>> may >>>>> be issues. >>>>> >>>>> Gary >>>>> >>>>> On Saturday 20 January 2024 at 17:52:04 UTC+10 michael.k...@gmx.at >>>>> wrote: >>>>> >>>>>> The empty queue is probably because of running it in WSL and being in >>>>>> a different IP range than the Console: >>>>>> 2024-01-19 18:47:39 weewxd[13771] DEBUG user.interceptor: empty queue >>>>>> >>>>>> $ ip addr >>>>>> 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP >>>>>> group default qlen 1000 >>>>>> link/ether 00:15:5d:a1:b2:53 brd ff:ff:ff:ff:ff:ff >>>>>> inet 172.19.239.191/20 brd 172.19.239.255 scope global eth0 >>>>>> valid_lft forever preferred_lft forever >>>>>> inet6 fe80::215:5dff:fea1:b253/64 scope link >>>>>> valid_lft forever preferred_lft forever >>>>>> >>>>>> And the console has 10.0.1.106 >>>>>> >>>>>> I need to set up WSL to be in the same network or try this on another >>>>>> machine. >>>>>> >>>>>> Anyway, @grj80: have you ever considered collecting data from more >>>>>> than one ecowitt console device with the driver? For me this would make >>>>>> perfect sense, but I can very well understand, if it doesn't to you :D >>>>>> michael.k...@gmx.at schrieb am Freitag, 19. Januar 2024 um 18:48:05 >>>>>> UTC+1: >>>>>> >>>>>>> Yes, it's possible. >>>>>>> 2024-01-19 18:27:35 weewxd[5855] DEBUG user.gw1000: Next update in 9 >>>>>>> seconds >>>>>>> 2024-01-19 18:27:35 weewxd[5855] DEBUG user.gw1000: Next update in 9 >>>>>>> seconds >>>>>>> LOOP: 2024-01-19 18:27:35 CET (1705685255) 'altimeter': >>>>>>> '1023.2565915245989', 'appTemp': '-4.6378894597484965', 'barometer': >>>>>>> '1026.3446847507096', 'cloudbase': '972.4294835518078', 'dateTime': >>>>>>> '1705685255', 'daymaxwind': '2.1', 'dayRain': '4.7', 'dewpoint': >>>>>>> '-6.267050581532717', 'ET': 'None', 'extraHumid6': '62', 'extraHumid7': >>>>>>> '61', 'extraHumid8': '58', 'extraTemp6': '14.8', 'extraTemp7': '19.9', >>>>>>> 'extraTemp8': '20.6', 'heatindex': '-1.9000000000000008', 'humidex': >>>>>>> '-1.9', 'inDewpoint': '12.462345522375951', 'inHumidity': '60', >>>>>>> 'inTemp': >>>>>>> '20.5', 'lightning_distance': 'None', 'lightning_last_det_time': >>>>>>> '1705345360', 'lightning_strike_count': '0', 'lightningcount': '0', >>>>>>> 'luminosity': '0.0', 'maxSolarRad': '0.0', 'monthRain': '50.4', >>>>>>> 'outHumidity': '72', 'outTemp': '-1.9', 'p_dayRain': '0.0', >>>>>>> 'p_monthRain': >>>>>>> '26.5', 'p_rain': '0.0', 'p_rainRate': '0.0', 'p_stormRain': '0.0', >>>>>>> 'p_weekRain': '11.8', 'p_yearRain': '26.5', 'pressure': '971.0', >>>>>>> 'radiation': '0.0', 'rain': '0.0', 'rainRate': '0.0', 'relbarometer': >>>>>>> '1023.8', 'stormRain': '0.0', 'usUnits': '17', 'UV': '0', >>>>>>> 'uvradiation': >>>>>>> '0.0', 'weekRain': '15.2', 'wh31_ch6_batt': '0', 'wh31_ch6_sig': '4', >>>>>>> 'wh31_ch7_batt': '0', 'wh31_ch7_sig': '4', 'wh31_ch8_batt': '0', >>>>>>> 'wh31_ch8_sig': '4', 'wh32_batt': '0', 'wh32_sig': '4', 'wh40_batt': >>>>>>> '1.45', 'wh40_sig': '4', 'wh57_batt': '5', 'wh57_sig': '4', >>>>>>> 'windchill': >>>>>>> '-1.9000000000000008', 'windDir': 'None', 'windGust': '1.3', 'windrun': >>>>>>> 'None', 'windSpeed': '0.0', 'ws90_batt': '3.28', 'ws90_sig': '4', >>>>>>> 'yearRain': '50.4' >>>>>>> >>>>>>> But why would anybody want to do this? I have two GW2000 devices and >>>>>>> want to store and show data of as many of my sensor possible in a >>>>>>> single >>>>>>> weewx instance. Yet configuring the driver both, as driver and a >>>>>>> service at >>>>>>> the same time, seems to work as I hoped at least foor LOOP: two device >>>>>>> queries, on LOOP data. >>>>>>> >>>>>>> The question now: is it possible to configure the driver/service in >>>>>>> a way, they uses their own ip_address and is it possible to map the >>>>>>> Wind/Dir/Gust of the WS90 bound to the one GW2000, to e.g. >>>>>>> us_windSpeed/us_windDir/us_windGust (us for ultrasonic) just like >>>>>>> p_rain >>>>>>> for the haptic array? >>>>>>> >>>>>>> Or isn't this possible and do I have to combine the Interceptor >>>>>>> driver with the Ecowitt Gateway Driver, one as a service, the other as >>>>>>> a >>>>>>> Driver to achieve this? If yes, how could this be possible, I tried it >>>>>>> with >>>>>>> Interceptor as a driver and Ecowitt Gateway Driver as a Service and get >>>>>>> not >>>>>>> device data: >>>>>>> 2024-01-19 18:46:59 weewxd[13771] DEBUG user.interceptor: empty queue >>>>>>> 2024-01-19 18:47:07 weewxd[13771] DEBUG user.gw1000: Next update in >>>>>>> 9 seconds >>>>>>> 2024-01-19 18:47:09 weewxd[13771] DEBUG user.interceptor: empty queue >>>>>>> 2024-01-19 18:47:16 weewxd[13771] DEBUG user.gw1000: Next update in >>>>>>> 9 seconds >>>>>>> 2024-01-19 18:47:19 weewxd[13771] DEBUG user.interceptor: empty queue >>>>>>> 2024-01-19 18:47:25 weewxd[13771] DEBUG user.gw1000: Next update in >>>>>>> 9 seconds >>>>>>> 2024-01-19 18:47:29 weewxd[13771] DEBUG user.interceptor: empty queue >>>>>>> 2024-01-19 18:47:34 weewxd[13771] DEBUG user.gw1000: Next update in >>>>>>> 9 seconds >>>>>>> 2024-01-19 18:47:39 weewxd[13771] DEBUG user.interceptor: empty queue >>>>>>> 2024-01-19 18:47:43 weewxd[13771] DEBUG user.gw1000: Next update in >>>>>>> 9 seconds >>>>>>> 2024-01-19 18:47:49 weewxd[13771] DEBUG user.interceptor: empty queue >>>>>>> >>>>>>> >>>>>>> -- 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 weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/6bbb522a-d34a-409f-ab00-e788970d9b59n%40googlegroups.com.