gjr80 / weewx-gw1000 Goto Github PK
View Code? Open in Web Editor NEWA WeeWX driver based on the Ecowitt LAN/Wi-Fi Gateway API
License: GNU General Public License v3.0
A WeeWX driver based on the Ecowitt LAN/Wi-Fi Gateway API
License: GNU General Public License v3.0
Hi,
the driver's ability to read calibration data of the sensors is excellent. Very useful to document/backup the configuration of the system.
I was wondering if the API allows to not only read that data, but to write it, so to have a sort of backup/restore utility of the calibration configuration.
The use case is that in the past, some fw updates deleted/reset all calibration values, and if you have lot of sensors it's a tedious and error-prone process inserting all values again.
It would be a great feature, IMHO.
Hello please can you explain to me how should update the drivers for the future versions?
Is there a solution for reading Solar Radiation W/m2 and brigtness Lux not showing up in weewx.
UV index is reading ok.
Is this a driver problem or a Weewx problem.
The diver works fine!
Is this becouse of switching from interceptor driver to API driver? Do I need a fresh weewx install
What do you reccomend?
Firstly, this is brilliant driver so thanks! I have a WS80 multi, WH40 rain, WH32B indoor, WH41 AQ, WH51 soil, WH57 lightning. Below is sample output. I can see the battery levels coming through except the WH40 and WH51 seem to be zero's. The WS-View app is reporting good battery levels on everything as is the ecowitt.net alert monitoring (i.e. lack of alerts). Maybe a bug? The below is from first running test driver.
Output as per install instructions Step 5 test driver:
"2020-10-15 23:21:30 BST (1602800490): UV: 0, dateTime: 1602800490, dayRain: 0.3, daymaxwind: 7.0, inHumidity: 53, inTemp: 21.1, lightning_distance: None, lightning_last_det_time: None, lightning_strike_count: None, luminosity: 0.0, monthRain: 0.5, outHumidity: 97, outTemp: 7.4, pm2_5: 11.0, pm2_51_24hav: 8.1, pressure: 1012.7, rain: None, rainRate: 0.0, relbarometer: 1024.6, soilMoist1: 59, stormRain: 0.0, usUnits: 17, uvradiation: 0.0, weekRain: 0.5, wh40_batt: 0, wh41_ch1_batt: 4, wh51_ch1_batt: 0, wh57_batt: 5, windDir: 241, windGust: 0.8, windSpeed: 0.0, ws80_batt: 3.28, yearRain: 0.5"
Also MQTT LOOP out I can see the same 0's e.g.:
beaufort_count: "0.571428571429"
cloudbase_meter: "161.465568243"
outHumidity: "97.2142857143"
pressure_mbar: "1012.66428571"
rain_cm: "0.0"
interval_minute: "5.0"
barometer_mbar: "1026.3257574"
yearRain_cm: "0.05"
windrun_km: "0.167143272575"
dewpoint_C: "6.95153953628"
ws80_batt: "3.28"
pm2_51_24hav: "8.3"
windGust_kph: "9.00002236942"
heatindex_C: "7.36428571429"
dayRain_cm: "0.03"
stormRain_cm: "0.0"
inDewpoint_C: "11.0476782125"
daymaxwind: "7.0"
wh51_ch1_batt: "0.0"
weekRain: "0.5"
altimeter_mbar: "1026.03501945"
windchill_C: "7.26328516716"
appTemp_C: "6.26522101744"
outTemp_C: "7.36428571429"
windGustDir: "245.0"
pm2_5_microgram_per_meter_cubed: "11.0"
lightning_strike_count: "0.0"
humidex_C: "7.37520274268"
wh57_batt: "5.0"
soilMoist1_centibar: "59.0"
rain24_cm: "0.0381"
wh41_ch1_batt: "4.0"
hourRain_cm: "0.0"
inTemp_C: "21.0"
windSpeed_kph: "2.0057192709"
usUnits: "16.0"
uvradiation: "0.0"
wh40_batt: "0.0"
monthRain_cm: "0.05"
luminosity: "0.0"
UV: "0.0"
rainRate_cm_per_hour: "0.0"
dateTime: "1602801600.0"
windDir: "345.229304126"
relbarometer: "1024.56428571"
ET_cm: "0.0"
inHumidity: "53.0"
I am new to WeeWX, so sorry if this is a stupid question. I have the sensor in the title. The GW1000 is clearly picking up data from it, and from code in your driver and in the Accumulators section in weewx.conf, I would expect it to be showing up. Any suggestion on where I am missing the boat for this would be much appreciated!
--Richard
PS: we also have a Purple Air outdoor sensor, which I hope to add via a separate extension. So having the PM25IN show up as indoor would be much desired.
Froggit/Ecowitt GW1000, V1.6.1, WS57 Lightning Sensor, 7in1 Outdoor Sensor
Aaccording to WS-View, it should be 0,6mm since this morning, but nothing displayed in Weeweex in opposite to before by the interceptor driver. Rain rate seems to work...
root@DietPi:~# PYTHONPATH=/home/weewx/bin python -m user.gw1000 --test-driverUsing configuration file /home/weewx/weewx.conf
Interrogating GW1000 at 192.168.12.189:45000
2020-07-26 09:02:26 CEST (1595746946): UV: 0, barometer: 1003.1, dateTime: 1595746946, daymaxwind: 2.6, inHumidity: 51, inTemp: 26.2, lightning_distance: None, lightning_last_det_time: None, lightning_strike_count: None, luminosity: 5704.0, outHumidity: 97, outTemp: 17.0, pressure: 1003.1, rainRate: 1.8, rainday: 0.6, rainevent: 0.3, rainmonth: 84.4, rainweek: 0.6, rainyear: 179.3, usUnits: 17, uvRadiation: 4.7, windDir: 9.8, windGust: 0.5, windSpeed: 0.4
I installed rsyslog and was promted to reboot my machine for this.
After the reboot weewx was loading, but not the driver.
To fix the problem I had to:
sudo /etc/init.d/weewx restart
user.log:
Jul 26 11:27:54 DietPi blkmapd[265]: open pipe file /run/rpc_pipefs/nfs/blocklayout failed: No such file or directory
Jul 26 11:28:11 DietPi weewx[379] INFO main: Initializing weewx version 4.1.1
Jul 26 11:28:11 DietPi weewx[379] INFO main: Using Python 3.5.3 (default, Jul 9 2020, 13:00:10) #12[GCC 6.3.0 20170516]
Jul 26 11:28:12 DietPi weewx[379] INFO main: Platform Linux-4.9.0-12-amd64-x86_64-with-debian-9.13
Jul 26 11:28:12 DietPi weewx[379] INFO main: Locale is 'de_DE.UTF-8'
Jul 26 11:28:12 DietPi weewx[379] INFO main: PID file is /var/run/weewx.pid
Jul 26 11:28:12 DietPi weewx[849] INFO main: Using configuration file /home/weewx/weewx.conf
Jul 26 11:28:12 DietPi weewx[849] INFO main: Debug is 0
Jul 26 11:28:12 DietPi weewx[849] INFO weewx.engine: Loading station type GW1000 (user.gw1000)
Jul 26 11:28:14 DietPi weewx[849] ERROR weewx.engine: Import of driver failed: local variable 'disc_ip' referenced before assignment (<class 'UnboundLocalError'>)
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** Traceback (most recent call last):
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/engine.py", line 103, in setupStation
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** self.console = loader_function(config_dict, self)
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 832, in loader
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** return Gw1000Driver(**config_dict[DRIVER_NAME])
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 917, in init
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** super(Gw1000Driver, self).init(**stn_dict)
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 553, in init
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** retry_wait=self.retry_wait)
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 1103, in init
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** retry_wait=retry_wait)
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 1395, in init
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** ip_address = disc_ip.encode() if ip_address is None else ip_address.encode()
Jul 26 11:28:16 DietPi weewx[849] CRITICAL weewx.engine: **** UnboundLocalError: local variable 'disc_ip' referenced before assignment
Jul 26 11:28:16 DietPi weewx[849] CRITICAL main: Unable to load driver: local variable 'disc_ip' referenced before assignment
Jul 26 11:28:16 DietPi weewx[849] CRITICAL main: **** Exiting...
Jul 26 11:29:11 DietPi org.kde.KScreen[1331]: kscreen.xrandr: Connected output 64 to CRTC 63
Jul 26 11:29:11 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: Detected XRandR 1.5
Jul 26 11:29:11 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: Event Base: 89
Jul 26 11:29:11 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: Event Error: 147
Jul 26 11:29:12 DietPi org.a11y.atspi.Registry[1508]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: XRandR::setConfig
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: Requested screen size is QSize(1280, 960)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: Needed CRTCs: 1
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: Actions to perform:
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Primary Output: false
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Change Screen Size: true
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #11#011Old: QSize(1024, 768)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #11#011Intermediate: QSize(1280, 960)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #11#011New: QSize(1280, 960)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Disable outputs: false
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Change outputs: true
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #11#011 (64)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Enable outputs: false
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: RRSetScreenSize
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011DPI: 96.0946
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Size: QSize(1280, 960)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011SizeMM: QSize(338, 253)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: RRSetCrtcConfig (change output)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Output: 64 ( "VGA-1" )
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011CRTC: 63
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Pos: QPoint(0,0)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Mode: 68 KScreen::Mode(Id: "68" , Size: QSize(1280, 960) )
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Rotation: 1
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Result: 0
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: XRandROutput 64 update
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011m_connected: 0
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011m_crtc XRandRCrtc(0x564dd65ca610)
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011CRTC: 63
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011MODE: 68
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Connection: 0
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: #011Primary: true
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: XRandR::setConfig done!
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: RRScreenChangeNotify
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Window: 14680068
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Root: 620
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Rotation: "Rotate_0"
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Size ID: 2
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Size: 1280 960
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011SizeMM: 338 253
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: RRNotify_CrtcChange
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011CRTC: 63
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Mode: 68
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Rotation: "Rotate_0"
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Geometry: 0 0 1280 960
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: RRScreenChangeNotify
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Window: 14680068
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Root: 620
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Rotation: "Rotate_0"
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Size ID: 2
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Size: 1280 960
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011SizeMM: 338 253
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: RRNotify_CrtcChange
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011CRTC: 63
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Mode: 68
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Rotation: "Rotate_0"
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xcb.helper: #011Geometry: 0 0 1280 960
Jul 26 11:29:12 DietPi org.kde.KScreen[1331]: kscreen.xrandr: Emitting configChanged()
Jul 26 11:29:21 DietPi org.gtk.vfs.AfcVolumeMonitor[1331]: Volume monitor alive
Jul 26 11:31:26 DietPi org.a11y.atspi.Registry[2803]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: Connected output 60 to CRTC 59
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xcb.helper: Detected XRandR 1.5
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xcb.helper: Event Base: 92
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xcb.helper: Event Error: 147
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: XRandR::setConfig
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: Requested screen size is QSize(1024, 768)
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: Needed CRTCs: 1
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: Actions to perform:
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: #011Primary Output: false
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: #011Change Screen Size: false
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: #011Disable outputs: false
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: #011Change outputs: false
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: #011Enable outputs: false
Jul 26 11:31:27 DietPi org.kde.KScreen[2752]: kscreen.xrandr: XRandR::setConfig done!
Jul 26 11:31:27 DietPi org.gtk.vfs.AfcVolumeMonitor[2752]: Volume monitor alive
Jul 26 11:34:45 DietPi weewx[4045] DEBUG gw1000: main: Sending broadcast packet 'FF FF 12 03 15' to '255.255.255.255:46000'
Jul 26 11:34:45 DietPi weewx[4045] DEBUG gw1000: main: Received broadcast response 'FF FF 12 00 21 A4 CF 12 B4 FB 23 C0 A8 0C BD AF C8 10 47 57 31 30 30 30 41 2D 57 49 46 49 46 42 32 33 0A'
Jul 26 11:34:47 DietPi weewx[4045] INFO gw1000: main: GW1000 was found at 192.168.12.189:45000
Jul 26 11:34:47 DietPi weewx[4045] DEBUG gw1000: main: Sending packet 'FF FF 27 03 2A' to '192.168.12.189:45000'
Jul 26 11:34:47 DietPi weewx[4045] DEBUG gw1000: main: Received response 'FF FF 27 00 5D 01 01 0C 06 34 08 27 3B 09 27 3B 02 00 B8 07 5E 0A 01 30 0B 00 09 0C 00 0A 15 00 04 04 16 16 02 2E 17 02 4C 0F 00 00 00 03 FF FF 00 FF FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 2E 0E 00 00 10 00 12 11 00 12 12 00 00 03 58 13 00 00 07 0D 0D 00 0A 6E'
Jul 26 11:34:47 DietPi weewx[4045] DEBUG gw1000: main: sensor data is '01 01 0C 06 34 08 27 3B 09 27 3B 02 00 B8 07 5E 0A 01 30 0B 00 09 0C 00 0A 15 00 04 04 16 16 02 2E 17 02 4C 0F 00 00 00 03 FF FF 00 FF FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 2E 0E 00 00 10 00 12 11 00 12 12 00 00 03 58 13 00 00 07 0D 0D 00 0A'
Jul 26 11:34:47 DietPi weewx[4045] DEBUG gw1000: main: Parsed data: {'wh31_ch6_batt': 0, 'wh41_ch3_batt': None, 'rainyear': 180.5, 'outtemp': 18.4, 'wh51_ch2_batt': 0, 'light': 26319.0, 'wh51_ch14_batt': 0, 'rainevent': 1.0, 'wh51_ch5_batt': 0, 'wh24_batt': 0, 'relbarometer': 1004.3, 'lightningdettime': None, 'wh51_ch7_batt': 0, 'wh31_ch2_batt': 0, 'wh51_ch4_batt': 0, 'wh51_ch10_batt': 0, 'ws80_batt': 5.1000000000000005, 'wh41_ch1_batt': None, 'wh55_ch4_batt': None, 'wh31_ch8_batt': 0, 'windspeed': 0.9, 'absbarometer': 1004.3, 'uv': 55.8, 'wh51_ch13_batt': 0, 'datetime': 1595756087, 'wh57_batt': 3, 'lightningdist': None, 'wh55_ch2_batt': None, 'wh26_batt': 0, 'daymaxwind': 4.6, 'wh51_ch11_batt': 0, 'winddir': 30.4, 'wh31_ch7_batt': 0, 'outhumid': 94, 'wh51_ch3_batt': 0, 'lightningcount': 0, 'wh41_ch4_batt': None, 'ws68_batt': 5.1000000000000005, 'wh51_ch9_batt': 0, 'wh40_batt': 0, 'intemp': 26.8, 'wh55_ch1_batt': None, 'uvi': 2, 'wh41_ch2_batt': None, 'inhumid': 52, 'wh51_ch8_batt': 0, 'rainday': 1.8, 'wh51_ch1_batt': 0, 'wh31_ch4_batt': 0, 'wh51_ch15_batt': 0, 'rainrate': 0.0, 'wh31_ch1_batt': 0, 'rainmonth': 85.6, 'wh25_batt': 0, 'wh31_ch3_batt': 0, 'wh51_ch6_batt': 0, 'gustspeed': 1.0, 'wh51_ch16_batt': 0, 'wh55_ch3_batt': None, 'rainweek': 1.8, 'wh31_ch5_batt': 0, 'wh51_ch12_batt': 0}
Jul 26 11:34:47 DietPi weewx[4045] DEBUG gw1000: main: Sending packet 'FF FF 3A 03 3D' to '192.168.12.189:45000'
Jul 26 11:34:47 DietPi weewx[4045] DEBUG gw1000: main: Received response 'FF FF 3A D5 00 00 00 00 79 00 04 01 FF FF FF FF FF 00 02 FF FF FF FF FF 00 03 FF FF FF FF 00 00 05 FF FF FF FF 00 00 06 FF FF FF FF 00 00 07 FF FF FF FF 00 00 08 FF FF FF FF 00 00 09 FF FF FF FF 00 00 0A FF FF FF FF 00 00 0B FF FF FF FF 00 00 0C FF FF FF FF 00 00 0D FF FF FF FF 00 00 0E FF FF FF FF 00 00 0F FF FF FF FF 00 00 10 FF FF FF FF 00 00 11 FF FF FF FF 00 00 12 FF FF FF FF 00 00 13 FF FF FF FF 00 00 14 FF FF FF FF 00 00 15 FF FF FF FF 00 00 16 FF FF FF FF 0F 00 17 FF FF FF FF 0F 00 18 FF FF FF FF 0F 00 19 FF FF FF FF 0F 00 1A 00 00 D0 3E 03 04 1B FF FF FF FF FF 00 1C FF FF FF FF FF 00 1D FF FF FF FF FF 00 1E FF FF FF FF FF 00 34'
Jul 26 11:34:47 DietPi weewx[4045] DEBUG gw1000: main: Filtered parsed data: {'windspeed': 0.9, 'outtemp': 18.4, 'gustspeed': 1.0, 'light': 26319.0, 'rainevent': 1.0, 'inhumid': 52, 'relbarometer': 1004.3, 'lightningdettime': None, 'absbarometer': 1004.3, 'rainyear': 180.5, 'uv': 55.8, 'datetime': 1595756087, 'wh57_batt': 3, 'lightningdist': None, 'daymaxwind': 4.6, 'winddir': 30.4, 'outhumid': 94, 'lightningcount': 0, 'intemp': 26.8, 'uvi': 2, 'rainrate': 0.0, 'rainday': 1.8, 'rainmonth': 85.6, 'rainweek': 1.8}
Jul 26 11:34:55 DietPi weewx[4240] DEBUG gw1000: main: Sending broadcast packet 'FF FF 12 03 15' to '255.255.255.255:46000'
Jul 26 11:34:55 DietPi weewx[4240] DEBUG gw1000: main: Received broadcast response 'FF FF 12 00 21 A4 CF 12 B4 FB 23 C0 A8 0C BD AF C8 10 47 57 31 30 30 30 41 2D 57 49 46 49 46 42 32 33 0A'
Jul 26 11:34:57 DietPi weewx[4240] INFO gw1000: main: GW1000 was found at 192.168.12.189:45000
Jul 26 11:34:57 DietPi weewx[4240] DEBUG gw1000: main: Sending packet 'FF FF 27 03 2A' to '192.168.12.189:45000'
Jul 26 11:34:57 DietPi weewx[4240] DEBUG gw1000: main: Received response 'FF FF 27 00 5D 01 01 0C 06 34 08 27 3B 09 27 3B 02 00 B8 07 5E 0A 01 30 0B 00 09 0C 00 0A 15 00 04 04 16 16 02 2E 17 02 4C 0F 00 00 00 03 FF FF 00 FF FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 2E 0E 00 00 10 00 12 11 00 12 12 00 00 03 58 13 00 00 07 0D 0D 00 0A 6E'
Jul 26 11:34:57 DietPi weewx[4240] DEBUG gw1000: main: sensor data is '01 01 0C 06 34 08 27 3B 09 27 3B 02 00 B8 07 5E 0A 01 30 0B 00 09 0C 00 0A 15 00 04 04 16 16 02 2E 17 02 4C 0F 00 00 00 03 FF FF 00 FF FF FF FF FF FF FF FF 62 00 00 00 00 61 FF FF FF FF 60 FF 19 00 2E 0E 00 00 10 00 12 11 00 12 12 00 00 03 58 13 00 00 07 0D 0D 00 0A'
Jul 26 11:34:57 DietPi weewx[4240] DEBUG gw1000: main: Parsed data: {'absbarometer': 1004.3, 'ws80_batt': 5.1000000000000005, 'wh51_ch9_batt': 0, 'wh51_ch14_batt': 0, 'wh31_ch5_batt': 0, 'rainrate': 0.0, 'wh25_batt': 0, 'winddir': 30.4, 'rainday': 1.8, 'wh51_ch2_batt': 0, 'wh55_ch4_batt': None, 'uvi': 2, 'wh31_ch3_batt': 0, 'lightningcount': 0, 'rainmonth': 85.6, 'wh51_ch5_batt': 0, 'wh31_ch4_batt': 0, 'wh57_batt': 3, 'wh24_batt': 0, 'wh51_ch10_batt': 0, 'rainweek': 1.8, 'outtemp': 18.4, 'wh51_ch7_batt': 0, 'gustspeed': 1.0, 'wh31_ch2_batt': 0, 'wh41_ch3_batt': None, 'lightningdist': None, 'wh51_ch6_batt': 0, 'wh55_ch2_batt': None, 'relbarometer': 1004.3, 'windspeed': 0.9, 'uv': 55.8, 'light': 26319.0, 'wh51_ch16_batt': 0, 'outhumid': 94, 'wh51_ch1_batt': 0, 'datetime': 1595756097, 'wh26_batt': 0, 'intemp': 26.8, 'wh31_ch7_batt': 0, 'wh51_ch12_batt': 0, 'wh51_ch13_batt': 0, 'wh31_ch1_batt': 0, 'wh31_ch6_batt': 0, 'wh51_ch15_batt': 0, 'inhumid': 52, 'wh40_batt': 0, 'wh31_ch8_batt': 0, 'wh41_ch4_batt': None, 'rainyear': 180.5, 'wh51_ch3_batt': 0, 'lightningdettime': None, 'wh51_ch8_batt': 0, 'wh55_ch3_batt': None, 'wh41_ch1_batt': None, 'wh51_ch11_batt': 0, 'ws68_batt': 5.1000000000000005, 'wh55_ch1_batt': None, 'rainevent': 1.0, 'wh41_ch2_batt': None, 'wh51_ch4_batt': 0, 'daymaxwind': 4.6}
Jul 26 11:34:57 DietPi weewx[4240] DEBUG gw1000: main: Sending packet 'FF FF 3A 03 3D' to '192.168.12.189:45000'
Jul 26 11:34:57 DietPi weewx[4240] DEBUG gw1000: main: Received response 'FF FF 3A D5 00 00 00 00 79 00 04 01 FF FF FF FF FF 00 02 FF FF FF FF FF 00 03 FF FF FF FF 00 00 05 FF FF FF FF 00 00 06 FF FF FF FF 00 00 07 FF FF FF FF 00 00 08 FF FF FF FF 00 00 09 FF FF FF FF 00 00 0A FF FF FF FF 00 00 0B FF FF FF FF 00 00 0C FF FF FF FF 00 00 0D FF FF FF FF 00 00 0E FF FF FF FF 00 00 0F FF FF FF FF 00 00 10 FF FF FF FF 00 00 11 FF FF FF FF 00 00 12 FF FF FF FF 00 00 13 FF FF FF FF 00 00 14 FF FF FF FF 00 00 15 FF FF FF FF 00 00 16 FF FF FF FF 0F 00 17 FF FF FF FF 0F 00 18 FF FF FF FF 0F 00 19 FF FF FF FF 0F 00 1A 00 00 D0 3E 03 04 1B FF FF FF FF FF 00 1C FF FF FF FF FF 00 1D FF FF FF FF FF 00 1E FF FF FF FF FF 00 34'
Jul 26 11:34:57 DietPi weewx[4240] DEBUG gw1000: main: Filtered parsed data: {'absbarometer': 1004.3, 'uv': 55.8, 'inhumid': 52, 'winddir': 30.4, 'rainday': 1.8, 'rainrate': 0.0, 'lightningcount': 0, 'rainmonth': 85.6, 'rainweek': 1.8, 'wh57_batt': 3, 'outtemp': 18.4, 'gustspeed': 1.0, 'relbarometer': 1004.3, 'windspeed': 0.9, 'light': 26319.0, 'outhumid': 94, 'intemp': 26.8, 'daymaxwind': 4.6, 'datetime': 1595756097, 'uvi': 2, 'rainyear': 180.5, 'lightningdettime': None, 'lightningdist': None, 'rainevent': 1.0}
Jul 26 11:42:01 DietPi weewx[7355] INFO main: Initializing weewx version 4.1.1
Jul 26 11:42:01 DietPi weewx[7355] INFO main: Using Python 3.5.3 (default, Jul 9 2020, 13:00:10) #12[GCC 6.3.0 20170516]
Jul 26 11:42:01 DietPi weewx[7355] INFO main: Platform Linux-4.9.0-12-amd64-x86_64-with-debian-9.13
Jul 26 11:42:01 DietPi weewx[7355] INFO main: Locale is 'de_DE.UTF-8'
Jul 26 11:42:01 DietPi weewx[7355] INFO main: PID file is /var/run/weewx.pid
Jul 26 11:42:01 DietPi weewx[7359] INFO main: Using configuration file /home/weewx/weewx.conf
Jul 26 11:42:01 DietPi weewx[7359] INFO main: Debug is 0
Jul 26 11:42:01 DietPi weewx[7359] INFO weewx.engine: Loading station type GW1000 (user.gw1000)
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: GW1000 was found at 192.168.12.189:45000
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: field map is {'24havpm251': '24havpm251', '24havpm252': '24havpm252', '24havpm253': '24havpm253', '24havpm254': '24havpm254', 'UV': 'uvi', 'barometer': 'relbarometer', 'dateTime': 'datetime', 'daymaxwind': 'daymaxwind', 'dewpoint': 'dewpoint', 'extraHumid1': 'humid1', 'extraHumid2': 'humid2', 'extraHumid3': 'humid3', 'extraHumid4': 'humid4', 'extraHumid5': 'humid5', 'extraHumid6': 'humid6', 'extraHumid7': 'humid7', 'extraHumid8': 'humid8', 'extraTemp1': 'temp1', 'extraTemp2': 'temp2', 'extraTemp3': 'temp3', 'extraTemp4': 'temp4', 'extraTemp5': 'temp5', 'extraTemp6': 'temp6', 'extraTemp7': 'temp7', 'extraTemp8': 'temp8', 'heatindex': 'heatindex', 'inHumidity': 'inhumid', 'inTemp': 'intemp', 'leak1': 'leak1', 'leak2': 'leak2', 'leak3': 'leak3', 'leak4': 'leak4', 'lightning_distance': 'lightningdist', 'lightning_last_det_time': 'lightningdettime', 'lightning_strike_count': 'lightning_strike_count', 'luminosity': 'light', 'outHumidity': 'outhumid', 'outTemp': 'outtemp', 'pm2_5': 'pm251', 'pm2_52': 'pm252', 'pm2_53': 'pm253', 'pm2_54': 'pm254', 'pressure': 'absbarometer', 'rainRate': 'rainrate', 'rainday': 'rainday', 'rainevent': 'rainevent', 'rainhour': 'rainhour', 'rainmonth': 'rainmonth', 'raintotals': 'raintotals', 'rainweek': 'rainweek', 'rainyear': 'rainyear', 'soilMoist1': 'soilmoist1', 'soilMoist2': 'soilmoist2', 'soilMoist3': 'soilmoist3', 'soilMoist4': 'soilmoist4', 'soilMoist5': 'soilmoist5', 'soilMoist6': 'soilmoist6', 'soilMoist7': 'soilmoist7', 'soilMoist8': 'soilmoist8', 'soilMoist9': 'soilmoist9', 'soilMoist10': 'soilmoist10', 'soilMoist11': 'soilmoist11', 'soilMoist12': 'soilmoist12', 'soilMoist13': 'soilmoist13', 'soilMoist14': 'soilmoist14', 'soilMoist15': 'soilmoist15', 'soilMoist16': 'soilmoist16', 'soilTemp1': 'soiltemp1', 'soilTemp2': 'soiltemp2', 'soilTemp3': 'soiltemp3', 'soilTemp4': 'soiltemp4', 'soilTemp5': 'soiltemp5', 'soilTemp6': 'soiltemp6', 'soilTemp7': 'soiltemp7', 'soilTemp8': 'soiltemp8', 'soilTemp9': 'soiltemp9', 'soilTemp10': 'soiltemp10', 'soilTemp11': 'soiltemp11', 'soilTemp12': 'soiltemp12', 'soilTemp13': 'soiltemp13', 'soilTemp14': 'soiltemp14', 'soilTemp15': 'soiltemp15', 'soilTemp16': 'soiltemp16', 'uvRadiation': 'uv', 'windDir': 'winddir', 'windGust': 'gustspeed', 'windSpeed': 'windspeed', 'windchill': 'windchill'}
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: driver version is 0.1.0b5
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: GW1000 IP address not specified, attempting to discover GW1000...
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: GW1000 address is 192.168.12.189:45000
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: poll interval is 10 seconds
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.engine: StdConvert target unit is 0x1
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.wxservices: The following values will be calculated: pressure=prefer_hardware, altimeter=prefer_hardware, appTemp=prefer_hardware, barometer=prefer_hardware, beaufort=prefer_hardware, cloudbase=prefer_hardware, dewpoint=prefer_hardware, ET=prefer_hardware, heatindex=prefer_hardware, humidex=prefer_hardware, inDewpoint=prefer_hardware, maxSolarRad=prefer_hardware, rainRate=prefer_hardware, windchill=prefer_hardware, windrun=prefer_hardware
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.wxservices: The following algorithms will be used for calculations: altimeter=aaASOS, maxSolarRad=RS
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.engine: Archive will use data binding wx_binding
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.engine: Record generation will be attempted in 'software'
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.engine: Using archive interval of 300 seconds (software record generation)
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.restx: StationRegistry: Registration not requested.
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.restx: Wunderground: Posting not enabled.
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.restx: PWSWeather: Data for station FITZBEK will be posted
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.restx: CWOP: Posting not enabled.
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.restx: WOW: Posting not enabled.
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.restx: AWEKAS: Posting not enabled.
Jul 26 11:42:03 DietPi weewx[7359] INFO user.mqtt: service version is 0.23
Jul 26 11:42:03 DietPi weewx[7359] INFO user.mqtt: binding to ['archive', 'loop']
Jul 26 11:42:03 DietPi weewx[7359] INFO user.mqtt: topic is weather
Jul 26 11:42:03 DietPi weewx[7359] INFO user.mqtt: desired unit system is METRIC
Jul 26 11:42:03 DietPi weewx[7359] INFO user.mqtt: data will be uploaded to mqtt://192.168.12.127:9002/
Jul 26 11:42:03 DietPi weewx[7359] INFO main: Starting up weewx version 4.1.1
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.engine: Using binding 'wx_binding' to database 'weewx.sdb'
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.manager: Starting backfill of daily summaries
Jul 26 11:42:03 DietPi weewx[7359] INFO weewx.engine: Starting main packet loop.
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: using 'rainyear' for rain total
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: skipping rain measurement of 180.5: no last rain
Jul 26 11:42:03 DietPi weewx[7359] INFO gw1000: user.gw1000: skipping lightning count of 0: no last count
Froggit/Ecowitt GW1000, V1.6.1, WS57 Lightning Sensor, 7in1 Outdoor Sensor
Aaccording to WS-View, it should be currently 63,4 w/m², but nothing displayed in Weewx.
root@DietPi:~# PYTHONPATH=/home/weewx/bin python -m user.gw1000 --test-driverUsing configuration file /home/weewx/weewx.conf
Interrogating GW1000 at 192.168.12.189:45000
2020-07-26 09:02:26 CEST (1595746946): UV: 0, barometer: 1003.1, dateTime: 1595746946, daymaxwind: 2.6, inHumidity: 51, inTemp: 26.2, lightning_distance: None, lightning_last_det_time: None, lightning_strike_count: None, luminosity: 5704.0, outHumidity: 97, outTemp: 17.0, pressure: 1003.1, rainRate: 1.8, rainday: 0.6, rainevent: 0.3, rainmonth: 84.4, rainweek: 0.6, rainyear: 179.3, usUnits: 17, uvRadiation: 4.7, windDir: 9.8, windGust: 0.5, windSpeed: 0.4
Hi,
I shifted to using this API driver over interceptor (because it didn't have all the sensors) and since then I get "N/A" in weewx for the Radiation value, same for the ET value(no idea what ET stands for, but I had a value appearing with the interceptor driver).
Not sure why since it looks like the driver is reading uvradiation just fine:
Here is the result of sudo PYTHONPATH=/usr/share/weewx python -m user.gw1000 --live-data --debug=3
GW1000 live sensor data (2021-07-19 10:48:35 EDT (1626706115)): absbarometer: 984.6hPa, daymaxwind: 7kph, gustspeed: 2kph, inhumid: 50%, intemp: 23.1�C, light: 26190lx, outhumid: 64%, outtemp: 27.6�C, rainday: 0.0mm, rainevent: 0.0mm, rainmonth: 0.0mm, rainrate: 0.0mm/h, rainweek: 0.0mm, rainyear: 0.0mm, relbarometer: 984.6hPa, uv: 54W/m�, uvi: 2.0, wh26_batt: 0, wh26_sig: 4, wh40_batt: 0, wh40_sig: 4, wh68_batt: 1.6V, wh68_sig: 4, winddir: 104�, windspeed: 1kph
and from sudo PYTHONPATH=/usr/share/weewx python -m user.gw1000 --test-driver
2021-07-19 10:55:23 EDT (1626706523): UV: 1, dateTime: 1626706523, dayRain: 0.0, daymaxwind: 2.0, inHumidity: 50, inTemp: 23.2, luminosity: 23710.0, monthRain: 0.0, outHumidity: 61, outTemp: 28.1, pressure: 984.5, rain: None, rainRate: 0.0, relbarometer: 984.5, stormRain: 0.0, usUnits: 17, uvradiation: 9.9, weekRain: 0.0, wh26_batt: 0, wh26_sig: 4, wh40_batt: 0, wh40_sig: 4, wh68_batt: 1.62, wh68_sig: 4, windDir: 104, windGust: 0.0, windSpeed: 0.0, yearRain: 0.0
Any idea?
It looks like the decimal place is off on the Wind direction, my current wind direction on the App and on my console is 152 deg, the driver is reporting 15.2, resulting in Weewx seeing Around N constantly.
Dump of data is below:
GW1000 live sensor data: 24havpm251: 11.4, absbarometer: 872.5, datetime: 1595939970, daymaxwind: 5.1, gustspeed: 2.0, inhumid: 44, intemp: 22.7, light: 930.0, lightningcount: 0, lightningdettime: 1595896953, lightningdist: 34, outhumid: 63, outtemp: 20.3, pm251: 10.0, rainday: 0.0, rainevent: 0.0, rainmonth: 0.0, rainrate: 0.0, rainweek: 0.0, rainyear: 152.2, relbarometer: 1018.9, soilmoist1: 37, soilmoist2: 52, temp2: -18.3, uv: 1.0, uvi: 0, wh31_ch2_batt: 0, wh41_ch1_batt: 4, wh51_ch1_batt: 0, wh51_ch2_batt: 0, wh57_batt: 5, wh65_batt: 0, winddir: 15.2, windspeed: 1.5
New install of weewx on Raspberry Pi. Was using ecowitt-client interceptor but switched to this today. Started up and seemed find however it appears to have crashed.
Devices:
gw1000
WH40
WS68
WH31
Started weewx at 15:52, and crashed at 18:36.
Start
Jul 23 17:52:43 raspberrypi systemd[1]: Starting LSB: weewx weather system...
Jul 23 17:52:44 raspberrypi weewx[17077] INFO main: Initializing weewx version 4.1.1
Jul 23 17:52:44 raspberrypi weewx[17077] INFO main: Using Python 3.7.3 (default, Dec 20 2019, 18:57:59) #12[GCC 8.3.0]
Jul 23 17:52:44 raspberrypi weewx[17077] INFO main: Platform Linux-5.4.51-v7+-armv7l-with-debian-10.4
Jul 23 17:52:44 raspberrypi weewx[17077] INFO main: Locale is 'en_US.UTF-8'
Jul 23 17:52:44 raspberrypi weewx[17077] INFO main: PID file is /var/run/weewx.pid
Jul 23 17:52:44 raspberrypi weewx[17082] INFO main: Using configuration file /home/weewx/weewx.conf
Jul 23 17:52:44 raspberrypi weewx[17082] INFO main: Debug is 0
Jul 23 17:52:44 raspberrypi weewx[17082] INFO weewx.engine: Loading station type GW1000 (user.gw1000)
Jul 23 17:52:44 raspberrypi weewx[17066]: Starting weewx weather system: weewx.
Jul 23 17:52:44 raspberrypi systemd[1]: Started LSB: weewx weather system.
Crash
Jul 23 18:35:58 raspberrypi weewx[17082] INFO weeutil.rsyncupload: rsync'd 23 files (171,099 bytes) in 1.64 seconds
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** Traceback (most recent call last):
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1294, i
n run
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** self.client.collect_sensor_data()
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1116, i
n collect_sensor_data
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** filtered_data = self.get_live_sensor_data()
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1147, i
n get_live_sensor_data
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** filtered_data = self.filter_battery_data(parsed_d
ata)
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1170, i
n filter_battery_data
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** sensor_list = self.sensor_id_data
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1213, i
n sensor_id_data
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** sensor_id_response = self.station.get_sensor_id()
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1475, i
n get_sensor_id
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** return self.send_cmd_with_retries('CMD_READ_SENSO
R_ID')
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1520, i
n send_cmd_with_retries
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** self.check_response(response, self.commands[cmd])
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** File "/home/weewx/bin/user/gw1000.py", line 1581, i
n check_response
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** if six.indexbytes(response, 2) == six.byte2int(cm
d_code):
Jul 23 18:36:54 raspberrypi weewx[17082] CRITICAL gw1000: user.gw1000: **** IndexError: index out of range
I just started using the weewx and your gw1000 device driver. I'm missing barometer and pm25 readings. Looking at the [wiki] (https://github.com/gjr80/weewx-gw1000/wiki/Available-config-options)], pages field_map and field_map_extension are missing. Do you have a copy of them available?
I am not getting the solar radiation reading, just UV index.
Hello how I can get battery information?
on my weewx template is not present:
https://meteo.iu3cyv.eu/weewx/
I Have also mqtt service enable how I can send battery with mqtt broker?
I have CumulusMX installed on a separate system.
WeeWX 4.1.1 and b11 of this driver installed on another system.
Both the console and CumulusMX report the same values for Radiation and UV Index.
WeeWX is showing a far lesser value for both.
Console values- Radiation 750 W/m2 UV Index 7
WeeWX values- Radiation 159 W/m² UV Index 1.0
What else is needed to investigate?
I ran the update to WeeWX from 4.4.0 to 4.5.1 this evening and found my skin a bit munged afterwards. I think my mistake -- lesson learned -- was in not reverting to the Seasons skin for the update. I had borrowed and slightly changed the original sensors.inc file for a different skin. My original sensors.inc and the new one from Seasons are attached. After the update two changes were apparent
sensors-old.txt
sensors-inc.txt
Even if I had included rather than copied the Seasons/templates/sensors.inc file I presume that the results would have been the same. Should the list of sensors be a separate include file?
I've commented out the sensors display card for now and will wait for yr advice about fixing and best way of avoiding this getting hit by future updates.
Gary,
Version number in gw1000.py build 6 still showing as build 5
I have installed b5 into my WeeWX 4.1.1 Python 3 instance.
Works well, but I have one question and one observation.
My question is, how to configure the polling interval in weewx.conf
I used that to run directly and it works well for my sensors reporting intervals.
My observation is that battery data is not captured.
Using Interceptor, these are my extensions to the sensor map:
device_type = fineoffset-bridge port = 8000 [[sensor_map_extensions]] windBatteryStatus = wh68_battery txBatteryStatus = wh26_battery supplyVoltage = wh40_battery
Happy to see this driver.
Current testing is limited to removing power from GW1000 and does not include a loss of network to a powered up GW1000. Primary concern to check behaviour is consistent with loop_on_init
setting.
wee_config --reconfigure
just dumps the loop_on_init =
line at the bottom of the top level config stanza in weewx.conf
. Can this be added in a neater way using configobj
, StringIO
and a multiline string.
Refer this weewx-user post
The GW1000 API documentation has long included support for 16 discrete soil temperature sensors under the CMD_GW1000_LIVEDATA API command. Despite no such sensor being publicly released, support for these sensors was and is included in the GW1000 driver. This support consisted of the ability to extract the relevant sensor data from the CMD_GW1000_LIVEDATA API command response and map to an appropriate WeeWX field (soilTempx).
A dedicated soil temperature sensor, the WN34S, has subsequently been released along with the WN34 and WN34L (Note, this sensor family is referred to as the WH34 in the API documentation and that nomenclature is currently used in the GW1000 driver). However, instead of using the previously allocated 16 soil temperature ‘addresses’ allocated in the API documentation the WN34S uses a separate address space. Furthermore, the WH34S shares eight ‘addresses’ with the WN34L meaning the GW1000 supports a maximum of eight total WN34L or WH34S of any mix. Also, the API provides no (known) way to discriminate between a WN34S and a WN34L.
Whilst the GW1000 driver includes support for the decoding of WN34S/L sensors the mapping is to WeeWX fields tempx (the WeeWX soilTempx fields are still currently mapped from the original 16 soil temperature ’addresses’). This can be overcome by the user creating a custom mapping to override the default mapping; but perhaps there is a better way, in particular a better default mapping.
Also, based on the API documentation the current driver uses the WH34 nomenclature not WN34. This is largely internal but it does manifest itself externally through in the default mapping. This discrepancy should be corrected, though it will have an impact on users already using WN34S/L sensors.
I have two soil moisture sensors (WH51) on my GW1000 and I am getting different data from the New API driver than I was with interceptor. GW1000 reports a 0 while Interceptor seems to have the voltage of 1.4, I changed the batter and interceptor does see the voltage change. Is three some data I can provide to help find a way to fix this? Or is this an API issue on GW1000?
On the GW1000 Driver:
GW1000 live sensor data: **** wh51_ch1_batt: 0, wh51_ch2_batt: 0, ****
On Interceptor:
&soilbatt1=1.4&soilbatt2=1.7&
WH31 on channel two is showing a sensor ID of d
when using --sensors
, actual sensor ID is d0
. No other WH31 sensors appear incorrect and no others end with 0
.
Driver version is 0.4.1
.
I've been experiencing occasional periods of time where WeeWX isn't receiving data while using the gw1000 driver. I've tried to look for patterns, but nothing has jumped out at me yet. Sometimes restarting the weewx service or rebooting my pi resolves it, sometimes it doesn't. Then it all shows up again. The problem appears isolated to the outside temp, heat index, wind chill, humidity, and barometer readings. The other sensors continue to work and are never affected by this. I've attached some screenshots showing examples of problem. Also, here's ~15 minutes of data from the debug log file after first starting up (and experiencing the issue.) The only change I've made to the system (other than to update the driver to 0.3.1 and weewx to 4.5.1) is a couple firmware updates on the gw1000.
Jun 8 11:10:21 weather weewx[1808] DEBUG __main__: Initializing engine
Jun 8 11:10:23 weather weewx[1808] DEBUG user.gw1000: max tries is 3, retry wait time is 10 seconds
Jun 8 11:10:23 weather weewx[1808] DEBUG user.gw1000: broadcast address is 255.255.255.255:46000, socket timeout is 2 seconds
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.engine.StdConvert
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.engine.StdQC
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
Jun 8 11:10:23 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.wxservices.StdWXCalculate
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypes
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdWXXTypes
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCooker
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdPressureCooker
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdRainRater
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdRainRater
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.wxxtypes.StdDelta
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdDelta
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.engine.StdArchive
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.restx.StdWOW
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.engine.StdPrint
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.engine.StdPrint
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Loading service weewx.engine.StdReport
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Finished loading service weewx.engine.StdReport
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.engine: Station does not support reading the time
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:10:23 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:10:43 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:11:03 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:11:23 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:11:43 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:12:03 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:12:23 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:12:44 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:13:04 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:13:24 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:13:44 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:14:04 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:14:24 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:14:45 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:15:05 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:15:25 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:15:30 weather weewx[1808] DEBUG weewx.reportengine: Running reports for latest time in the database.
Jun 8 11:15:30 weather weewx[1808] DEBUG weewx.reportengine: Running report 'SeasonsReport'
Jun 8 11:15:30 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Seasons/skin.conf for report 'SeasonsReport'
Jun 8 11:15:30 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:15:30 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:31 weather weewx[1808] DEBUG weewx.restx: CWOP: Connected to server cwop.aprs.net:14580
Jun 8 11:15:35 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:36 weather weewx[1808] DEBUG weewx.reportengine: Running report 'SmartphoneReport'
Jun 8 11:15:36 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Smartphone/skin.conf for report 'SmartphoneReport'
Jun 8 11:15:36 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:15:36 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:37 weather weewx[1808] DEBUG PIL.PngImagePlugin: STREAM 'IHDR' 16 13
Jun 8 11:15:37 weather weewx[1808] DEBUG PIL.PngImagePlugin: STREAM 'IDAT' 41 1216
Jun 8 11:15:37 weather weewx[1808] DEBUG PIL.PngImagePlugin: STREAM 'IHDR' 16 13
Jun 8 11:15:37 weather weewx[1808] DEBUG PIL.PngImagePlugin: STREAM 'IDAT' 41 1216
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.reportengine: Running report 'MobileReport'
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Mobile/skin.conf for report 'MobileReport'
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.reportengine: Running report 'Belchertown'
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belchertown'
Jun 8 11:15:37 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers', u'user.belchertown.getData']
Jun 8 11:15:38 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:45 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:15:46 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:15:49 weather weewx[1808] DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
Jun 8 11:15:49 weather weewx[1808] DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.
Jun 8 11:16:06 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:16:26 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:16:46 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:17:06 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:17:26 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:17:46 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:18:07 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:18:27 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:18:47 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:19:07 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:19:27 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:19:47 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:20:07 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:20:27 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:20:29 weather weewx[1808] DEBUG weewx.restx: CWOP: wait interval (300 < 600) has not passed for record 2021-06-08 11:20:00 CDT (1623169200)
Jun 8 11:20:29 weather weewx[1808] DEBUG weewx.restx: StationRegistry: wait interval (300 < 604800) has not passed for record 2021-06-08 11:20:00 CDT (1623169200)
Jun 8 11:20:29 weather weewx[1808] DEBUG weewx.reportengine: Running reports for latest time in the database.
Jun 8 11:20:29 weather weewx[1808] DEBUG weewx.reportengine: Running report 'SeasonsReport'
Jun 8 11:20:29 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Seasons/skin.conf for report 'SeasonsReport'
Jun 8 11:20:29 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:20:29 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:31 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.reportengine: Running report 'SmartphoneReport'
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Smartphone/skin.conf for report 'SmartphoneReport'
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.reportengine: Running report 'MobileReport'
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Mobile/skin.conf for report 'MobileReport'
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:33 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:34 weather weewx[1808] DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
Jun 8 11:20:34 weather weewx[1808] DEBUG weewx.reportengine: Running report 'Belchertown'
Jun 8 11:20:34 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belchertown'
Jun 8 11:20:34 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers', u'user.belchertown.getData']
Jun 8 11:20:34 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:36 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:20:38 weather weewx[1808] DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
Jun 8 11:20:38 weather weewx[1808] DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.
Jun 8 11:20:47 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:21:08 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:21:28 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:21:48 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:22:08 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:22:28 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:22:48 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:23:08 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:23:29 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:23:49 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:24:09 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:24:29 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:24:49 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:25:09 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:25:29 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:25:32 weather weewx[1808] DEBUG weewx.restx: StationRegistry: wait interval (600 < 604800) has not passed for record 2021-06-08 11:25:00 CDT (1623169500)
Jun 8 11:25:32 weather weewx[1808] DEBUG weewx.reportengine: Running reports for latest time in the database.
Jun 8 11:25:32 weather weewx[1808] DEBUG weewx.reportengine: Running report 'SeasonsReport'
Jun 8 11:25:32 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Seasons/skin.conf for report 'SeasonsReport'
Jun 8 11:25:32 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:25:32 weather weewx[1808] DEBUG weewx.restx: CWOP: Connected to server cwop.aprs.net:14580
Jun 8 11:25:32 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:34 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.reportengine: Running report 'SmartphoneReport'
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Smartphone/skin.conf for report 'SmartphoneReport'
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.reportengine: Running report 'MobileReport'
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Mobile/skin.conf for report 'MobileReport'
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers']
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.reportengine: Report 'StandardReport' not enabled. Skipping.
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.reportengine: Running report 'Belchertown'
Jun 8 11:25:36 weather weewx[1808] DEBUG weewx.reportengine: Found configuration file /etc/weewx/skins/Belchertown/skin.conf for report 'Belchertown'
Jun 8 11:25:37 weather weewx[1808] DEBUG weewx.cheetahgenerator: Using search list ['weewx.cheetahgenerator.Almanac', 'weewx.cheetahgenerator.Station', 'weewx.cheetahgenerator.Current', 'weewx.cheetahgenerator.Stats', 'weewx.cheetahgenerator.UnitInfo', 'weewx.cheetahgenerator.Extras', 'weewx.cheetahgenerator.JSONHelpers', u'user.belchertown.getData']
Jun 8 11:25:37 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:39 weather weewx[1808] DEBUG weewx.manager: Daily summary version is 4.0
Jun 8 11:25:41 weather weewx[1808] DEBUG weewx.reportengine: Report 'FTP' not enabled. Skipping.
Jun 8 11:25:41 weather weewx[1808] DEBUG weewx.reportengine: Report 'RSYNC' not enabled. Skipping.
Jun 8 11:25:50 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:26:10 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:26:30 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:26:50 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:27:10 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:27:30 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Jun 8 11:27:50 weather weewx[1808] DEBUG user.gw1000: Next update in 20 seconds
Hello, thanks for all the work that went into this driver.
I have a WS-80 (no rain measuring). I'm using a simple two wire tipping bucket gauge for rain measurement, and I wrote a service to capture the tips and inject them into the loop. The service is correctly capturing the number of tips, converting it to rain amount (each tip is .01 inches), and adding it to the packet. The code for the service is here: https://github.com/lordratner/weewx_gpio_raingauge/blob/main/gpio_rain_service.py
With the simulator driver all I had to do was comment out the 'rain' :
line and weewx would use my value.
With the GW1000 driver however there are many, many instances that deal with rain in the driver code, and I'm not sure which to disable to allow mine to work. Without changing anything, a .01 per tip value passed from my service is translated into 0.00039370078740157485 per tip. The number of tips is passing correctly (each tip adds 0.00039370078740157485 to the "rain" value in the loop), but I'm not sure what is changing it from .01 to 0.00039370078740157485.
Any suggestions? Thanks!
Just a small glitch, found while I was testing the command line options of the driver: when using the fw version option, the output is missing the 3rd digit. It should be v1.6.6.
➜ ~ PYTHONPATH=/home/weewx/bin python -m user.gw1000 --config=/etc/weewx/ecowitt.conf --firmware-version
Using configuration file /etc/weewx/ecowitt.confInterrogating GW1000 at 10.1.10.118:45000
GW1000 firmware version string: GW1000A_V1.6.
root@DietPi:# sudo /home/weewx/bin/wee_extension --install=/var/tmp/gw1000-0.1.0b5.tar.gz# PYTHONPATH=/home/weewx/bin python -m user.gw1000 --test-driver
Request to install '/var/tmp/gw1000-0.1.0b5.tar.gz'
Extracting from tar archive /var/tmp/gw1000-0.1.0b5.tar.gz
Saving installer file to /home/weewx/bin/user/installer/GW1000
Saved configuration dictionary. Backup copy at /home/weewx/weewx.conf.20200724165212
Finished installing extension '/var/tmp/gw1000-0.1.0b5.tar.gz'
root@DietPi:
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/weewx/bin/user/gw1000.py", line 267, in
import weecfg
File "/home/weewx/bin/weecfg/init.py", line 22, in
import configobj
ImportError: No module named configobj
root@DietPi:~#
by the way, many thanks for this driver! - I hope to get it running because I´m not happy with the interceptor limitations...
I was having problems with the default mapping (with Influxdb and Grafana) and found the Field Map page in the wiki.
I found out, reading a couple of posts by Tom, that the field that better represents the light sensor should be in reality be "illuminance", introduced in weewx 4.2, and not luminosity.
weewx/weewx#613 (comment)
https://groups.google.com/g/weewx-user/c/gcjK6o_1QXE/m/qMMW3Mg_BwAJ
I used a [[field_map_extensions]] stanza, under [GW1000], to remap it:
[[field_map_extensions]]
illuminance = light
With this I solved the issue I had exporting data to influxdb, but I thought it would be useful to have your opinion about the default mappings.
Can or should anything be done with loop_on_init
when the driver is removed. Maybe it is easiest to leave it as is and wait for the next driver to configure it if needed or able. Maybe all we can do is add a line to the uninstall instructions.
Refer this weewx-user post
I set up a new test system last night with Ubuntu 20.04.1 running on a Pi with WeeWX 4.2, installed weewx-g1000 (0.1.1b12) and, using default Seasons skin got to see battery level indicators for my additional temperature & humidity and pressure sensors. The readings all said battery level was LOW although battery tests shows all at 100%.
Today, to my surprise, the battery levels have all disappeared from the skin.
Don't think I had too much to drink yesterday. Any ideas?
I think the only deviation from the installation instructions (I installed automatically, used wee_extension) was manually changing the data_services entry here from "," but can't recall if that was before or after seeing battery indicators.
[[Services]]
prep_services = weewx.engine.StdTimeSynch
data_services = user.gw1000.Gw1000Service
There appears to be inconsistent behaviour when errors are encountered obtaining a response/data from the GW1000. Expected behaviour will be different whether the GW1000 driver is being used as a WeeWX driver or as a WeeWX service. In simple terms when run as a driver failure to communicate with the GW1000 should result repeated attempts to connect to the GW1000 every 60 seconds. Behaviour on startup is determined by loop_on_init
config setting. When operated as a service failure to communicate with the GW1000 should again result in repeated attempts to connect to the GW1000 but the failure to establish a connection with the GW1000 should not cause WeeWX to crash or interrupt WeeWX operation in some other way. In both cases recovery (if possible) should be seamless without the need for user intervention.
This weewx-user thread (driver) and this weewx-user thread (service) highlight unrecoverable errors as a result of lost communication with the GW1000.
I've a new GW1100A with V2.0.4 firmware, tonight i've the following errors and weewx stop working.
Can any one help me ?
Many Thanks
Alex
PYTHONPATH=/usr/share/weewx python -m user.gw1000 --live-data
Interrogating GW1000 at 10.100.200.23:45000
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/share/weewx/user/gw1000.py", line 5906, in
main()
File "/usr/share/weewx/user/gw1000.py", line 5900, in main
direct_gw100.process_options()
File "/usr/share/weewx/user/gw1000.py", line 4860, in process_options
self.live_data()
File "/usr/share/weewx/user/gw1000.py", line 5497, in live_data
live_sensor_data_dict = collector.get_live_sensor_data()
File "/usr/share/weewx/user/gw1000.py", line 2329, in get_live_sensor_data
self.update_sensor_id_data()
File "/usr/share/weewx/user/gw1000.py", line 2344, in update_sensor_id_data
self.sensors_obj.set_sensor_id_data(sensor_id_data)
File "/usr/share/weewx/user/gw1000.py", line 4108, in set_sensor_id_data
batt_fn = Gw1000Collector.sensor_ids[data[index:index + 1]]['batt_fn']
KeyError: '0'
PYTHONPATH=/usr/share/weewx python -m user.gw1000 --sensors
Interrogating GW1000 at 10.100.200.23:45000
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/usr/share/weewx/user/gw1000.py", line 5906, in
main()
File "/usr/share/weewx/user/gw1000.py", line 5900, in main
direct_gw100.process_options()
File "/usr/share/weewx/user/gw1000.py", line 4858, in process_options
self.sensors()
File "/usr/share/weewx/user/gw1000.py", line 5432, in sensors
collector.update_sensor_id_data()
File "/usr/share/weewx/user/gw1000.py", line 2344, in update_sensor_id_data
self.sensors_obj.set_sensor_id_data(sensor_id_data)
File "/usr/share/weewx/user/gw1000.py", line 4108, in set_sensor_id_data
batt_fn = Gw1000Collector.sensor_ids[data[index:index + 1]]['batt_fn']
KeyError: '0'
The README.md states "Note: If necessary you can specify the GW1000 IP address and port using the --ip-address and --port command line options. Refer to the GW1000 driver help using --help for further information."
However the driver actually expects --ip to be defined, and throws an error if --ip-address is used. (The --help command informs you to use --ip)
I would suggest changing the --ip parameter to --ip_address to be consistent with the weewx configuration file, which uses ip_address.
Two Raspberry Pis with identical setups. One is running perfectly, the other gives this error: -
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** self.console = loader_function(config_dict, self)
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 867, in loader
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** return Gw1000Driver(**config_dict[DRIVER_NAME])
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 952, in init
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** super(Gw1000Driver, self).init(**stn_dict)
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 517, in init
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** field_map.update(field_map_extensions)
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL weewx.engine: **** UnboundLocalError: local variable 'field_map_extensions' referenced before assignment
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL main: Unable to load driver: local variable 'field_map_extensions' referenced before assignment
Jul 27 00:27:06 wxpi4b weewxd[12461]: weewx[12461] CRITICAL main: **** Exiting...
Field map settings are: -
[GW1000]
# This section is for the GW1000
# The driver itself
driver = user.gw1000
poll_interval = 16
[[field_map]]
outTemp = outtemp
windSpeed = windspeed
UV = uvi
light = light
outBatteryStatus = wh65_batt
outHumidity = outhumid
windDir = winddir
windGust = gustspeed
rain_total = rainday
inTemp = intemp
inHumidity = inhumid
barometer = relbarometer
inTempBatteryStatus =
Running b12 with WeeWX 4.1.1 under python3, setup.py method.
This is the GW1000 stanza in weewx.conf:
# Options for extension 'GW1000' [GW1000] driver = user.gw1000 ip_address = 10.10.100.125 port = 45000 poll_interval = 16 [[field_map_extensions]] supplyVoltage = wh40_batt windBatteryStatus = wh68_batt txBatteryStatus = wh26_batt
On my test machine, I noticed this morning that there was no live data.
systemctl status weewx shows:
`● weewx.service - weewx weather system
Loaded: loaded (/etc/systemd/system/weewx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2020-09-09 17:36:50 EDT; 15h ago
Process: 174609 ExecStart=/home/weewx/bin/weewxd --daemon --pidfile=/var/run/weewx.pid /home/weewx/weewx.conf (code=exited, status=0/SUCCESS)
Main PID: 174624 (code=exited, status=4)
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL weewx.engine: **** self.mac = self.get_mac_address()
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 2407, in get_mac_ad>
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL weewx.engine: **** return self.send_cmd_with_retries('CMD_READ_STATION_MAC')
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 2532, in send_cmd_w>
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL weewx.engine: **** raise GW1000IOError(_msg)
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL weewx.engine: **** user.gw1000.GW1000IOError: Failed to obtain response to command '>
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL main: Unable to load driver: Failed to obtain response to command 'CMD_READ_STATION_M>
Sep 09 17:36:50 tester weewxd[174624]: weewx[174624] CRITICAL main: **** Exiting...
Sep 09 17:36:50 tester systemd[1]: weewx.service: Main process exited, code=exited, status=4/NOPERMISSION
Sep 09 17:36:50 tester systemd[1]: weewx.service: Failed with result 'exit-code'.
`
A restart of weewx has things working fine again.
Because I have my 'production' weewx online and CumulusMX on the test server, I can say that the network had no difficulty as both use the GW1000 and both have good data for yesterday and today.
Perhaps one of them stepped on the other, two calling for data at the same time?
some issues with driver 0.3.1 and weewx 4.5.1 too.
Jun 10 21:31:43 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** File "/usr/share/weewx/user/gw1000.py", line 3421, in check_response
Jun 10 21:31:43 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** if six.indexbytes(response, 2) == six.byte2int(cmd_code):
Jun 10 21:31:43 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** IndexError: index out of range
Jun 10 21:32:07 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: Unexpected exception occurred while checking response to attempt 1 to send command 'CMD_READ…x out of range
Jun 10 21:32:07 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** Traceback (most recent call last):
Jun 10 21:32:07 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** File "/usr/share/weewx/user/gw1000.py", line 3345, in send_cmd_with_retries
Jun 10 21:32:07 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** self.check_response(response, self.commands[cmd])
Jun 10 21:32:07 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** File "/usr/share/weewx/user/gw1000.py", line 3421, in check_response
Jun 10 21:32:07 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** if six.indexbytes(response, 2) == six.byte2int(cmd_code):
Jun 10 21:32:07 sandbox python3[5721]: weewx[5721] ERROR user.gw1000: **** IndexError: index out of range
Originally posted by @Zaschii in #41 (comment)
Hello how i can get version 0.3.2 ?
Last week I updated firmware to 1.6.8. No other software changes. Over the weekend, weewx started failing to read through the GW1000 driver with timeout error messages. (Website: https://iayft.com/weewx/index.html) Updated driver from previous version to 0.3.1, powered down and restarted GW1000, network router. I can access GW1000 consistently through WSView, and no errors posted from GW1000 to Ecowitt.net and Wunderground (NHHOPKI9). weewx is typically running as a service on an Ubuntu 18.04 LTS server, Python 2.7.17, tried to run it as a daemon and it "seemed" to run longer, but still timeouts, anecdotally.
Following along with the several other threads posted here, I updated the retry count to 10, set debug to 1 and ran to see if I could add to the symptoms you've seen. It ran without issue for about 12 hours (longest in the three days) and then died. Attached are sensors, debug set to 1, live data, and logs
Sensors:
Using configuration file /etc/weewx/weewx.conf
debug level is '1'
IP address obtained from station config
Port number obtained from station config
Interrogating GW1000 at 192.168.1.248:45000
Sensor Status
WH68 sensor ID: 1bb signal: 4 battery: 1.86 (OK)
WH65 sensor is registering...
WH40 sensor ID: fa2b signal: 4 battery: 0 (OK)
WS80 sensor is registering...
WH26 sensor ID: a1 signal: 4 battery: 0 (OK)
WH31 ch2 sensor is registering...
WH31 ch1 sensor ID: 5e signal: 4 battery: 0 (OK)
WH31 ch4 sensor is registering...
WH31 ch3 sensor is registering...
WH31 ch6 sensor is registering...
WH31 ch5 sensor is registering...
WH31 ch8 sensor is registering...
WH31 ch7 sensor is registering...
WH51 ch2 sensor is registering...
WH51 ch1 sensor is registering...
WH51 ch4 sensor is registering...
WH51 ch3 sensor is registering...
WH51 ch6 sensor is registering...
WH51 ch5 sensor is registering...
WH51 ch8 sensor is registering...
WH51 ch7 sensor is registering...
WH41 ch2 sensor is registering...
WH41 ch1 sensor ID: a signal: 4 battery: 4 (OK)
WH41 ch4 sensor is registering...
WH41 ch3 sensor is registering...
WH55 ch1 sensor is registering...
WH57 sensor is registering...
WH55 ch3 sensor is registering...
WH55 ch2 sensor is registering...
WH34 ch1 sensor is registering...
WH55 ch4 sensor is registering...
WH34 ch3 sensor is registering...
WH34 ch2 sensor is registering...
WH34 ch5 sensor is registering...
WH34 ch4 sensor is registering...
WH34 ch7 sensor is registering...
WH34 ch6 sensor is registering...
WH45 sensor is registering...
WH34 ch8 sensor is registering...
WH35 ch2 sensor is registering...
WH35 ch1 sensor is registering...
WH35 ch4 sensor is registering...
WH35 ch3 sensor is registering...
WH35 ch6 sensor is registering...
WH35 ch5 sensor is registering...
WH35 ch8 sensor is registering...
WH35 ch7 sensor is registering...
Live Data:
Using configuration file /etc/weewx/weewx.conf
debug level is '1'
IP address obtained from station config
Port number obtained from station config
Interrogating GW1000 at 192.168.1.248:45000
GW1000 live sensor data (2021-06-15 09:15:06 EDT (1623762906)): absbarometer: 992.5hPa, daymaxwind: 4kph, gustspeed: 2kph, humid1: 68%, inhumid: 72%, intemp: 20.2°C, light: 19680lx, outhumid: 89%, outtemp: 19.4°C, pm251: 8.0µg/m³, pm251_24h_avg: 4.1µg/m³, rainday: 0.2mm, rainevent: 0.0mm, rainmonth: 25.6mm, rainrate: 0.0mm/h, rainweek: 8.0mm, rainyear: 182.9mm, relbarometer: 1007.4hPa, temp1: 21.1°C, uv: 10W/m², uvi: 1.0, wh26_batt: 0, wh26_sig: 4, wh31_ch1_batt: 0, wh31_ch1_sig: 4, wh40_batt: 0, wh40_sig: 4, wh41_ch1_batt: 4, wh41_ch1_sig: 4, wh68_batt: 1.9V, wh68_sig: 4, winddir: 314°, windspeed: 1kph
Logs (generated with journalctl --unit=weewx --lines 12551 >~/weewxlog.txt)
Since there is a 'CMD_WRITE_SSID' in Station.commands, would there be a way to change WLAN settings via the api? Or at least retrieve the SSID the device is connected to?
I couldn't find a way to retrieve the connection details in the WS View app so i am afraid it's not possible, but still wanted check if it maybe is, before having to reset and setup via the App. I recently get lots of 'No route to host' errors and wondered if it is because the device is connected to a weak WLAN. Don't remember what i set up originally.
Mar 25 09:15:10 rsp1 weewx[23048] DEBUG user.gw1000: Failed attempt 18 to send command 'CMD_READ_SENSOR_ID_NEW': [Errno 113] No route to host
Mar 25 09:15:43 rsp1 weewx[23048] DEBUG user.gw1000: Failed attempt 19 to send command 'CMD_READ_SENSOR_ID_NEW': [Errno 113] No route to host
Mar 25 09:16:16 rsp1 weewx[23048] DEBUG user.gw1000: Failed attempt 20 to send command 'CMD_READ_SENSOR_ID_NEW': [Errno 113] No route to host
Mar 25 09:16:16 rsp1 weewx[23048] ERROR user.gw1000: Failed to obtain response to command 'CMD_READ_SENSOR_ID_NEW' after 20 attempts
Mar 25 09:16:16 rsp1 weewx[23048] DEBUG user.gw1000: IP address specified in 'weewx.conf', re-discovery was not attempted
Hi, I was not seeing solar radiation data from the GW1000 sent to WU or PWSWeather, then I finally found your article in the wiki (https://github.com/gjr80/weewx-gw1000/wiki/Understanding-GW1000-radiation-fields), thanks for writing it.
Two things regarding the radiation field:
Thanks for your support,
Alessandro
First of all, let me thank you for this driver, very well made and documented.
I installed it with default settings, but it didn't discover the GW1000 so it threw an error. In the settings I didn't find a way to specify the IP so I went to the wiki and found the options sections. So I specified some default settings in weewx.conf with comments, so if I need to change something I have what's needed in the config.
Since I wanted to understand why it didn't find the GW1000, I specified the broadcast_port option, but when I restarted weewx it threw the following error:
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] INFO user.gw1000: driver version is 0.2.0
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] INFO user.gw1000: GW1000 address is 10.1.10.118:45000
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] INFO user.gw1000: poll interval is 60 seconds
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] ERROR weewx.engine: Import of driver failed: %d format: a number is required, not str (<class 'TypeError'>)
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** Traceback (most recent call last):
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** File "/home/weewx/bin/weewx/engine.py", line 119, in setupStation
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** self.console = loader_function(config_dict, self)
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 1498, in loader
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** return Gw1000Driver(**config_dict[DRIVER_NAME])
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** File "/home/weewx/bin/user/gw1000.py", line 1860, in __init__
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** logdbg('broadcast address is %s:%d, socket timeout is %d seconds' % (self.broadcast_address,
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL weewx.engine: **** TypeError: %d format: a number is required, not str
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL __main__: Unable to load driver: %d format: a number is required, not str
Mar 17 20:03:03 rpi4argon weewx-ecowitt[67057] CRITICAL __main__: **** Waiting 60 seconds then retrying...
This is the config of the driver:
# Options for 'GW1000': https://github.com/gjr80/weewx-gw1000/wiki/Available-Config-Options
[GW1000]
# The driver to use:
driver = user.gw1000
# If ip_address is not specified the GW1000 driver will attempt to locate GW1000 on the LAN and use the first GW1000 found
ip_address = 10.1.10.118
# Port number used when communicating with the the GW1000. Optional, number. Default is 45000
port = 45000
# Interval in seconds used to poll the GW1000 for data. Optional, number. Default is 60
poll_interval = 60
# The IP address to be used when sending a UDP broadcast to identify GW1000 devices on the network. Optional, string. Default is 255.255.255.255
broadcast_address = 255.255.255.255
# The port number to be used when sending a UDP broadcast to identify GW1000 devices on the network. Optional, number. Default is 46000
#broadcast_port = 46000
Thanks for any advice.
My WeeWX "Rain Today" field is not matching the values shown by the GW1000, WeeWX-GW1000 driver, or the data WeeWX is pushing up to Weather Underground.
Rain Today shows "0.02 in" on the standard report, whereas the other sources show the correct value of 0.06 inches (even the data that WeeWX itself is uploading to Wunderground which is weird). I'm not 100% sure if this is an error with how the driver is calculating the rain value for WeeWX?
2020-08-12 09:57:12 EDT (1597240632): UV: 1, dateTime: 1597240632, dayRain: 1.6, daymaxwind: 2.6, inHumidity: 59, inTemp: 26.9, luminosity: 25260.0, monthRain: 9.2, outHumidity: 90, outTemp: 26.6, pressure: 1018.3, rain: None, rainRate: 0.0, relbarometer: 1018.3, stormRain: 1.6, usUnits: 17, uvradiation: 9.9, weekRain: 1.6, wh26_batt: 0, wh40_batt: 0, wh68_batt: 1.64, windDir: 162, windGust: 0.0, windSpeed: 0.0, yearRain: 39.7
wee_extension
does not support the --no-prompt
command line option as does wee_config
. Need to check that if wee_config
is used with the --no-prompt
command line option a workable config results.
What is wrong with this? It doesn't work and gives an error. I am trying to graph the PM 2.5 24H average along with the current reading. This is what I have in my graphs.conf
`
[[chart7]]
title = PM 2.5
[[[pm2_5]]]
name = PM 2.5
zIndex = 1
color = "#ffc83f"
[[[pm2_51_24hav]]]
name = 24H Average
color = "#f7f2b4"
y_label = "ug/m3"
`
This is the reading from the driver :
2020-12-21 20:15:48 AST (1608596148): UV: 0, dateTime: 1608596148, dayRain: 13.2, daymaxwind: 15.8, extraHumid1: 53, extraHumid2: 48, extraHumid3: 54, extraHumid4: 75, extraHumid5: 54, extraHumid6: 45, extraHumid7: 43, extraTemp1: 23.3, extraTemp2: 24.3, extraTemp3: 21.1, extraTemp4: 9.4, extraTemp5: 16.9, extraTemp6: 25.4, extraTemp7: 25.9, extraTemp8: 18.9, inHumidity: 39, inTemp: 27.8, leak1: 0, leak2: 0, lightning_distance: None, lightning_last_det_time: None, lightning_strike_count: None, luminosity: 0.0, monthRain: 74.7, outHumidity: 99, outTemp: 9.4, pm2_5: 9.9, pm2_51_24hav: 15.5, pressure: 992.2, radiation: 0.2, rain: None, rainRate: 6.0, relbarometer: 1003.4, stormRain: 13.2, usUnits: 17, weekRain: 13.2, wh31_ch1_batt: 0, wh31_ch2_batt: 0, wh31_ch3_batt: 0, wh31_ch4_batt: 0, wh31_ch5_batt: 0, wh31_ch6_batt: 0, wh31_ch7_batt: 0, wh31_ch8_batt: 0, wh41_ch1_batt: 4, wh55_ch1_batt: 5, wh55_ch2_batt: 4, wh57_batt: 5, wh65_batt: 0, windDir: 123, windGust: 4.1, windSpeed: 2.8, yearRain: 194.2
And this is the error I am getting.
Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: Caught unrecoverable exception in generator 'user.belchertown.HighchartsJsonGenerator' Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** Error trying to use database binding wx_binding to graph observation pm2_51_24hav. Error was: pm2_51_24hav. Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** Traceback (most recent call last): Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** File "/usr/share/weewx/user/belchertown.py", line 2335, in get_observation_data Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** (time_start_vt, time_stop_vt, obs_vt) = archive.getSqlVectors(TimeSpan(start_ts, end_ts), obs_lookup, aggregate_type, aggregate_interval) Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/manager.py", line 452, in getSqlVectors Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** aggregate_type, aggregate_interval) Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/xtypes.py", line 91, in get_series Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** raise weewx.UnknownType(obs_type) Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** weewx.UnknownType: pm2_51_24hav Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** During handling of the above exception, another exception occurred: Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** Traceback (most recent call last): Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 197, in run Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** obj.start() Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** File "/usr/share/weewx/weewx/reportengine.py", line 280, in start Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** self.run() Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** File "/usr/share/weewx/user/belchertown.py", line 1833, in run Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** series_data = self.get_observation_data(binding, archive, observation_type, minstamp, maxstamp, aggregate_type, aggregate_interval, time_length, xAxis_groupby, xAxis_categories, mirrored_value, weatherRange_obs_lookup, wind_rose_color) Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** File "/usr/share/weewx/user/belchertown.py", line 2337, in get_observation_data Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** raise Warning( "Error trying to use database binding %s to graph observation %s. Error was: %s." % (binding, obs_lookup, e) ) Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** Warning: Error trying to use database binding wx_binding to graph observation pm2_51_24hav. Error was: pm2_51_24hav. Dec 21 20:42:30 LivingstoneCove weewx[28947] ERROR weewx.reportengine: **** Generator terminated
What am I doing wrong? The graph works without the bottom section for the average reading, so if i remove the following, it works with no errors :
[[[pm2_51_24hav]]] name = 24H Average color = "#f7f2b4" y_label = "ug/m3"
Nella guida fino al punto 6, quando faccio il test del drive, tutto funziona e la stazione scarica correttamente i dati.
Quando vado a riconfigurare weewx.conf, inizia a uscire questo errore CMD_READ_STATION_MAC
E in loop, ogni 60sec, continua a uscire lo stesso errore.
Cosa posso fare?
Grazie
I am experiencing an issue it seems with data from the GW-1000 not updating. After a period of time, maybe 30 minutes or so my readings for relative pressure (and inside temperature & humidity) don’t update, from what I can tell the GW-1000 is still providing the data when this happens. I have tried debugging etc but I can’t get to the bottom of the issue.
The only real output I can see directly from the syslog is the below every 20 seconds
weewx[31904] DEBUG user.gw1000: Next update in 20 seconds
For some background, I have the RTL SDR driver installed and this is receiving data from my weather station. The GW-1000 extension (latest version) is installed as a service to supplement my weather station data and add the barometric pressure and internal temperature and humidity.
Is there anything I can do to troubleshoot my issue further or can you offer any advice as to possible cause(s)?
Live data reading (from after data stopped updating in weewx):
$ PYTHONPATH=/usr/share/weewx python3 -m user.gw1000 --live-data
Using configuration file /etc/weewx/weewx.conf
Interrogating GW1000 at 192.168.5.241:45000
GW1000 live sensor data (2021-04-12 12:29:13 IST (1618226953)): absbarometer: 1013.4hPa, humid1: 46%, humid2: 59%, inhumid: 54%, intemp: 20.9°C, relbarometer: 1029.4hPa, temp1: 26.1°C, temp2: 10.8°C, wh31_ch1_batt: 0, wh31_ch1_sig: 2, wh31_ch2_batt: 0, wh31_ch2_sig: 4
Weewx conf file (I cut down on most of the default setting to make it easier to read. Anything I’ve removed is unrelated to GW-1000 or SDR.
Weewx.conf
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2019 Tom Keffer <[email protected]>
# See the file LICENSE.txt for your rights.
##############################################################################
debug = 1
WEEWX_ROOT = /
log_success = True
log_failure = True
socket_timeout = 20
version = 4.5.1
##############################################################################
# This section is for information about the station.
[Station]
altitude = 132, meter
station_type = SDR
rain_year_start = 1
week_start = 6
##############################################################################
[SDR]
driver = user.sdr
cmd = rtl_433 -M utc -F json -f 868312k -s 1024k -Y classic
path = /usr/local/bin:${PATH}
ld_library_path = /usr/bin
[[sensor_map]]
windGust = wind_gust.220.FOWHx080Packet
outBatteryStatus = battery.220.FOWHx080Packet
rain_total = rain_total.220.FOWHx080Packet
windSpeed = wind_speed.220.FOWHx080Packet
windDir = wind_dir.220.FOWHx080Packet
outHumidity = humidity.220.FOWHx080Packet
outTemp = temperature.220.FOWHx080Packet
[[deltas]]
rain = rain_total
[StdRESTful]
[[MQTT]]
server_url = mqtt://xxxxxxxx:xxxxxxxxxx@localhost:1883/
topic = weather
unit_system = METRIC
binding = loop, archive
[StdReport]
SKIN_ROOT = /etc/weewx/skins
HTML_ROOT = /var/www/html/weewx
data_binding = wx_binding
log_success = True
log_failure = True
[[SeasonsReport]]
skin = Seasons
enable = true
[[Highcharts_Belchertown]]
HTML_ROOT = /var/www/html/weewx/belchertown
skin = Highcharts_Belchertown
[[Belchertown]]
HTML_ROOT = /var/www/html/weewx/belchertown
skin = Belchertown
[StdConvert]
target_unit = US # Options are 'US', 'METRICWX', or 'METRIC'
[StdCalibrate]
[[Corrections]]
windDir = windDir + 180.0 if windDir < 180 else windDir - 180.0
[StdQC]
[[MinMax]]
barometer = 26, 32.5, inHg
[StdWXCalculate]
[[Calculations]]
pressure = prefer_hardware
barometer = prefer_hardware
[StdTimeSynch]
[StdArchive]
archive_interval = 300
record_generation = software
loop_hilo = True
data_binding = wx_binding
[DataBindings]
[[wx_binding]]
database = archive_sqlite
table_name = archive
manager = weewx.wxmanager.WXDaySummaryManager
schema = schemas.wview.schema
[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
[DatabaseTypes]
[[SQLite]]
driver = weedb.sqlite
SQLITE_ROOT = /var/lib/weewx
[Engine]
[[Services]]
prep_services = weewx.engine.StdTimeSynch
data_services = user.gw1000.Gw1000Service
process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
xtype_services = weewx.wxxtypes.StdWXXTypes, weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater, weewx.wxxtypes.StdDelta
archive_services = weewx.engine.StdArchive
restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS, user.mqtt.MQTT
report_services = weewx.engine.StdPrint, weewx.engine.StdReport
# Options for 'GW1000'
[GW1000]
# This section is for the GW1000 API driver.
# How often to poll the GW1000 API, default is every 20 seconds:
poll_interval = 20
# The driver to use:
driver = user.gw1000
ip_address = 192.168.5.241
port = 45000
max_tries = 10
retry_wait = 20
max_age = 120
[[field_map_extensions]]
inTemp = intemp
inHumidity = inhumid
barometer = relbarometer
wh31_ch1_batt = wh31_ch1_batt
wh31_ch2_batt = wh31_ch1_batt
wh31_ch1_sig = wh31_ch1_sig
wh31_ch2_sig = wh31_ch2_sig
[Accumulator]
# Start GW1000 driver extractors
[[daymaxwind]]
extractor = last
[[lightning_distance]]
extractor = last
[[lightning_strike_count]]
extractor = sum
[[lightningcount]]
extractor = last
[[lightning_last_det_time]]
extractor = last
[[stormRain]]
extractor = last
[[hourRain]]
extractor = last
[[dayRain]]
extractor = last
[[weekRain]]
extractor = last
[[monthRain]]
extractor = last
[[yearRain]]
extractor = last
[[totalRain]]
extractor = last
[[pm2_51_24h_avg]]
extractor = last
[[pm2_52_24h_avg]]
extractor = last
[[pm2_53_24h_avg]]
extractor = last
[[pm2_54_24h_avg]]
extractor = last
[[pm2_55_24h_avg]]
extractor = last
[[pm10_24h_avg]]
extractor = last
[[co2_24h_avg]]
extractor = last
[[wh40_batt]]
extractor = last
[[wh26_batt]]
extractor = last
[[wh25_batt]]
extractor = last
[[wh65_batt]]
extractor = last
[[wh31_ch1_batt]]
extractor = last
[[wh31_ch2_batt]]
extractor = last
[[wh31_ch3_batt]]
extractor = last
[[wh31_ch4_batt]]
extractor = last
[[wh31_ch5_batt]]
extractor = last
[[wh31_ch6_batt]]
extractor = last
[[wh31_ch7_batt]]
extractor = last
[[wh31_ch8_batt]]
extractor = last
[[wh35_ch1_batt]]
extractor = last
[[wh35_ch2_batt]]
extractor = last
[[wh35_ch3_batt]]
extractor = last
[[wh35_ch4_batt]]
extractor = last
[[wh35_ch5_batt]]
extractor = last
[[wh35_ch6_batt]]
extractor = last
[[wh35_ch7_batt]]
extractor = last
[[wh35_ch8_batt]]
extractor = last
[[wh41_ch1_batt]]
extractor = last
[[wh41_ch2_batt]]
extractor = last
[[wh41_ch3_batt]]
extractor = last
[[wh41_ch4_batt]]
extractor = last
[[wh45_batt]]
extractor = last
[[wh51_ch1_batt]]
extractor = last
[[wh51_ch2_batt]]
extractor = last
[[wh51_ch3_batt]]
extractor = last
[[wh51_ch4_batt]]
extractor = last
[[wh51_ch5_batt]]
extractor = last
[[wh51_ch6_batt]]
extractor = last
[[wh51_ch7_batt]]
extractor = last
[[wh51_ch8_batt]]
extractor = last
[[wh51_ch9_batt]]
extractor = last
[[wh51_ch10_batt]]
extractor = last
[[wh51_ch11_batt]]
extractor = last
[[wh51_ch12_batt]]
extractor = last
[[wh51_ch13_batt]]
extractor = last
[[wh51_ch14_batt]]
extractor = last
[[wh51_ch15_batt]]
extractor = last
[[wh51_ch16_batt]]
extractor = last
[[wh55_ch1_batt]]
extractor = last
[[wh55_ch2_batt]]
extractor = last
[[wh55_ch3_batt]]
extractor = last
[[wh55_ch4_batt]]
extractor = last
[[wh57_batt]]
extractor = last
[[wh68_batt]]
extractor = last
[[ws80_batt]]
extractor = last
[[wh40_sig]]
extractor = last
[[wh26_sig]]
extractor = last
[[wh25_sig]]
extractor = last
[[wh65_sig]]
extractor = last
[[wh31_ch1_sig]]
extractor = last
[[wh31_ch2_sig]]
extractor = last
[[wh31_ch3_sig]]
extractor = last
[[wh31_ch4_sig]]
extractor = last
[[wh31_ch5_sig]]
extractor = last
[[wh31_ch6_sig]]
extractor = last
[[wh31_ch7_sig]]
extractor = last
[[wh31_ch8_sig]]
extractor = last
[[wh35_ch1_sig]]
extractor = last
[[wh35_ch2_sig]]
extractor = last
[[wh35_ch3_sig]]
extractor = last
[[wh35_ch4_sig]]
extractor = last
[[wh35_ch5_sig]]
extractor = last
[[wh35_ch6_sig]]
extractor = last
[[wh35_ch7_sig]]
extractor = last
[[wh35_ch8_sig]]
extractor = last
[[wh41_ch1_sig]]
extractor = last
[[wh41_ch2_sig]]
extractor = last
[[wh41_ch3_sig]]
extractor = last
[[wh41_ch4_sig]]
extractor = last
[[wh45_sig]]
extractor = last
[[wh51_ch1_sig]]
extractor = last
[[wh51_ch2_sig]]
extractor = last
[[wh51_ch3_sig]]
extractor = last
[[wh51_ch4_sig]]
extractor = last
[[wh51_ch5_sig]]
extractor = last
[[wh51_ch6_sig]]
extractor = last
[[wh51_ch7_sig]]
extractor = last
[[wh51_ch8_sig]]
extractor = last
[[wh51_ch9_sig]]
extractor = last
[[wh51_ch10_sig]]
extractor = last
[[wh51_ch11_sig]]
extractor = last
[[wh51_ch12_sig]]
extractor = last
[[wh51_ch13_sig]]
extractor = last
[[wh51_ch14_sig]]
extractor = last
[[wh51_ch15_sig]]
extractor = last
[[wh51_ch16_sig]]
extractor = last
[[wh55_ch1_sig]]
extractor = last
[[wh55_ch2_sig]]
extractor = last
[[wh55_ch3_sig]]
extractor = last
[[wh55_ch4_sig]]
extractor = last
[[wh57_sig]]
extractor = last
[[wh68_sig]]
extractor = last
[[ws80_sig]]
extractor = last
Python 3.7.3 / weewx v4.4.0
When using socket_timeout, e.g.
[GW1000]
driver = user.gw1000
ip_address = XX.XX.XX.XX
port = 45000
poll_interval = 30
socket_timeout = 5
max_tries = 3
retry_wait = 10
in the config of the driver in weewx.conf, the driver fails to load
Mar 24 15:56:32 rsp1 weewx[28170] DEBUG user.gw1000: Failed attempt 1 to send command 'CMD_READ_STATION_MAC': an integer is required (got type str )
it seems that self.socket_timeout
arrives as string @ gw1000.py line 3361
:
socket_obj.settimeout(self.socket_timeout)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.