### Weewx Configuration for Ecowitt HTTP Service Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Example configuration snippet for Weewx's 'weewx.conf' to enable the Ecowitt HTTP data service. ```Python [Engine] [[Services]] data_services = user.ecowitt_http.EcowittHttpService ``` -------------------------------- ### Ecowitt HTTP Driver: Get Services Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Fetches and lists the available services managed by the driver. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --get-services ``` -------------------------------- ### Install Weewx Ecowittcustom Extension Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Commands to install the weewx-ecowittcustom extension using weewx's extension management tools. Supports Weewx V4 and V5. ```shell V4: sudo wee_extension --install=weewx-ecowittcustom.zip V5: sudo weectl extension install weewx-ecowittcustom.zip or V4: sudo wee_extension --install=/%path_where_file_located%/weewx-???.zip ``` -------------------------------- ### Fetch Live Data from Ecowitt Station Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/compare_ gw3000_live_data.txt This command executes the ecowitt_http.py script, part of the WeeWX ecosystem, to fetch live sensor data from a specified weather station IP address. It requires a WeeWX installation and configuration. ```bash PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=192.168.0.110 --live-data ``` -------------------------------- ### Ecowitt Custom Driver Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Configuration block for the 'ecowittcustom' driver, specifying the driver path, device type, network port, and network interface. This setup is crucial for establishing communication with Ecowitt weather devices. ```configuration [Ecowittcustom] # This section is for the network traffic ecowittcustom driver. # The driver to use: driver = user.ecowittcustom device_type = ecowitt-client port = 8080 iface = eth0 #iface = wlan0 [[sensor_map_extensions]] # mappings now in the ecowittcustom.py driver # outTempBatteryStatus = wh26batt ``` -------------------------------- ### Assign Sensor Signals for Ecowitt GW1000 Driver Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md This section provides examples of Python-like assignments within a configuration file (e.g., weewx.conf) to map raw sensor signals from Ecowitt devices to meaningful data points. It includes calculations like multiplying signal values by 25 and handling None values. ```Python [StdCalibrate] [[Corrections]] #rxCheckPercent = ws80_sig * 25 if ws80_sig is not None else None #rxCheckPercent = wh24_sig * 25 if wh24_sig is not None else None #rxCheckPercent = wh25_sig * 25 if wh25_sig is not None else None #rxCheckPercent = wh65_sig * 25 if wh65_sig is not None else None #rxCheckPercent = wh68_sig * 25 if wh68_sig is not None else None #signal1 = wh24_sig * 25 if wh24_sig is not None else None #signal2 = wh31_ch1_sig * 25 if wh31_ch1_sig is not None else None #signal3 = wh34_ch1_sig * 25 if wh34_ch1_sig is not None else None #signal4 = wh40_sig * 25 if wh40_sig is not None else None #signal5 = wh45_sig * 25 if wh45_sig is not None else None #signal6 = wh57_sig * 25 if wh57_sig is not None else None #signal7 = wh51_ch1_sig * 25 if wh51_ch1_sig is not None else None #signal8 = wh35_ch1_sig * 25 if wh35_ch1_sig is not None else None ws90_sig = ws90_sig * 25 if ws90_sig is not None else None ws85_sig = ws85_sig * 25 if ws85_sig is not None else None wh54_ch1_sig = wh54_ch1_sig * 25 if wh54_ch1_sig is not None else None hail = p_rain if p_rain is not None else None hailRate = p_rainrate if p_rainrate is not None else None pb = heap if heap is not None else None wh85_sig = ws85_sig if ws85_sig is not None else None ws85_sig = ws85_sig * 25 if ws85_sig is not None else None lightning_distance_save = lightning_distance if lightning_distance is not None else None lightning_distance = lightning_distance if lightning_strike_count > 0 else None wh31_ch1_sig = wh31_ch1_sig *25 if wh31_ch1_sig is not None else None wh31_ch2_sig = wh31_ch2_sig *25 if wh31_ch2_sig is not None else None wh31_ch3_sig = wh31_ch3_sig *25 if wh31_ch3_sig is not None else None wh31_ch4_sig = wh31_ch4_sig *25 if wh31_ch4_sig is not None else None wh31_ch5_sig = wh31_ch5_sig *25 if wh31_ch5_sig is not None else None wh31_ch6_sig = wh31_ch6_sig *25 if wh31_ch6_sig is not None else None wh31_ch7_sig = wh31_ch7_sig *25 if wh31_ch7_sig is not None else None wh31_ch8_sig = wh31_ch8_sig *25 if wh31_ch8_sig is not None else None wn34_ch1_sig = wn34_ch1_sig *25 if wn34_ch1_sig is not None else None wn34_ch2_sig = wn34_ch2_sig *25 if wn34_ch2_sig is not None else None wn34_ch3_sig = wn34_ch3_sig *25 if wn34_ch3_sig is not None else None wn34_ch4_sig = wn34_ch4_sig *25 if wn34_ch4_sig is not None else None wn34_ch5_sig = wn34_ch5_sig *25 if wn34_ch5_sig is not None else None wn34_ch6_sig = wn34_ch6_sig *25 if wn34_ch6_sig is not None else None wn34_ch7_sig = wn34_ch7_sig *25 if wn34_ch7_sig is not None else None wn34_ch8_sig = wn34_ch8_sig *25 if wn34_ch8_sig is not None else None wh51_ch1_sig = wh51_ch1_sig *25 if wh51_ch1_sig is not None else None wh51_ch2_sig = wh51_ch2_sig *25 if wh51_ch2_sig is not None else None wh51_ch3_sig = wh51_ch3_sig *25 if wh51_ch3_sig is not None else None wh51_ch4_sig = wh51_ch4_sig *25 if wh51_ch4_sig is not None else None wh51_ch5_sig = wh51_ch5_sig *25 if wh51_ch5_sig is not None else None wh51_ch6_sig = wh51_ch6_sig *25 if wh51_ch6_sig is not None else None wh51_ch7_sig = wh51_ch7_sig *25 if wh51_ch7_sig is not None else None wh51_ch8_sig = wh51_ch8_sig *25 if wh51_ch8_sig is not None else None wh51_ch9_sig = wh51_ch9_sig *25 if wh51_ch9_sig is not None else None wh51_ch10_sig = wh51_ch10_sig *25 if wh51_ch10_sig is not None else None ``` -------------------------------- ### Ecowitt GW3000A Live Sensor Data Output Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/compare_ gw3000_live_data.txt Example output format for live sensor data retrieved from an Ecowitt GW3000A weather station. It lists various sensor readings including temperature, humidity, pressure, rain, and battery status. ```text Using configuration file /etc/weewx/weewx.conf Interrogating GW3000A_V1.0.9 at 192.168.0.110 Displaying data using the WeeWX METRICWX unit group. GW3000A_V1.0.9 live sensor data (2025-07-12 12:18:01 CEST (1752315481)): 'barometer': '1011.7 mbar', 'batteryStatus1': '0', 'batteryStatus2': '0', 'batteryStatus3': '0', 'batteryStatus4': '0', 'batteryStatus5': '0', 'batteryStatus6': '0', 'batteryStatus7': '0', 'batteryStatus8': '0', 'co2': '494 ppm', 'co2_24h': '474 ppm', 'co2_Hum': '69%', 'co2_Temp': '18.0C', 'dateTime': '12-Jul-2025 12:18', 'dayRain': '0.0 mm', 'depth_ch1': '0 mm', 'dewpoint': '12.4C', 'drain_piezo': '0.1 mm', 'extraHumid1': '71%', 'extraHumid2': '77%', 'extraHumid3': '54%', 'extraHumid4': '66%', 'extraHumid5': '51%', 'extraHumid6': '54%', 'extraHumid7': '56%', 'extraHumid8': '69%', 'extraTemp1': '19.3C', 'extraTemp2': '16.5C', 'extraTemp3': '21.7C', 'extraTemp4': '17.3C', 'extraTemp5': '22.2C', 'extraTemp6': '21.0C', 'extraTemp7': '19.4C', 'extraTemp8': '16.6C', 'feelslike': '17.5C', 'gain0': '0.890000', 'gain1': '1.050000', 'gain2': '1.000000', 'gain3': '1.000000', 'gain4': '1.000000', 'hail': '10.2 mm', 'hailBatteryStatus': '3.28 V', 'hailRate': '0.0 mm/h', 'heap': '120076 B', 'inHumidity': '49%', 'inTemp': '22.5C', 'inTempBatteryStatus': 'None', 'ldsbatt1': '3.00 V', 'leafWet1': '83%', 'leafWetBatt1': '1.72 V', 'leak Batt3': '5', 'leak_1': '0', 'leak_2': '0', 'leak_3': '0', 'leak_4': '0', 'leak_Batt1': '4', 'leak_Batt2': '5', 'leak_Batt4': '5', 'lightning_Batt': '5', 'lightning_distance': '37', 'lightning_disturber_count': '11-Jul-2025 14:42', 'lightning_strike_count': '0', 'lightningcount': '0', 'maxdailygust': '4.8 m/s', 'monthRain': '84.3 mm', 'mrain_piezo': '86.8 mm', 'newVersion': '0', 'outHumidity': '72%', 'outTemp': '17.5C', 'p_rain': '10.2 mm', 'p_rainrate': '0.0 mm/h', 'piezo': '1.000000', 'pm1_0': '7.1 g/m', 'pm1_24h_co2': '2.7 g/m', 'pm1_24hAQI_co2': '11', 'pm1_RealAQI_co2': '30', 'pm2_5': '7.5 g/m', 'pm4_0': '7.6 g/m', 'pm4_24h_co2': '3.2 g/m', 'pm4_24hAQI_co2': '13', 'pm4_RealAQI_co2': '32', 'pm10_0': '7.6 g/m', 'pm10_24h_co2': '3.3 g/m', 'pm10_24hAQI_co2': '3', 'pm10_RealAQI_co2': '7', 'pm25_1': '8.0 g/m', 'pm25_2': '10.0 g/m', 'pm25_3': '15.0 g/m', 'pm25_4': '7.0 g/m', 'pm25_24h_co2': '3.1 g/m', 'pm25_24hAQI_co2': '13', 'pm25_AQI_24h_ch1': '22', 'pm25_AQI_24h_ch2': '28', 'pm25_AQI_24h_ch3': '13', 'pm25_AQI_24h_ch4': '20', 'pm25_avg_24h_ch1': '5.3 g/m', 'pm25_avg_24h_ch2': '6.6 g/m', 'pm25_avg_24h_ch3': '3.2 g/m', 'pm25_avg_24h_ch4': '4.7 g/m', 'pm25_Batt1': '6', 'pm25_Batt2': '5', 'pm25_Batt3': '6', 'pm25_Batt4': '5', 'pm25_RealAQI_ch1': '33', 'pm25_RealAQI_ch2': '42', 'pm25_RealAQI_ch3': '57', 'pm25_RealAQI_ch4': '29', 'pm25_RealAQI_co2': '31', 'pressure': '919.3 mbar', 'radcompensation': '1', 'radiation': '624 W/m', 'rain': '8.7 mm', 'rain_annual_reset': '0', 'rain_day_reset': '0', 'rain_source': '1', 'rain_week_reset': '1', 'raingain': '1.000000', 'rainRate': '0.0 mm/h', 'rrain_piezo': '0.0 mm/h', 'runtime': '179545 seconds', 'soilMoist1': '45%', 'soilMoist2': '47%', 'soilMoist3': '56%', 'soilMoist4': '84%', 'soilMoist5': '52%', 'soilMoist6': '91%', 'soilMoist7': '50%', 'soilMoist8': '95%', 'soilMoist9': '31%', 'soilMoist10': '77%', 'soilMoistBatt1': '1.70 V', 'soilMoistBatt1s': '5', 'soilMoistBatt2': '1.70 V', 'soilMoistBatt2s': '5', 'soilMoistBatt3': '1.70 V', 'soilMoistBatt3s': '5', 'soilMoistBatt4': '1.70 V', 'soilMoistBatt4s': '5', 'soilMoistBatt5': '1.70 V', 'soilMoistBatt5s': '5', 'soilMoistBatt6': '1.70 V', 'soilMoistBatt6s': '5', 'soilMoistBatt7': '1.40 V', 'soilMoistBatt7s': '4', 'soilMoistBatt8': '1.30 V', 'soilMoistBatt8s': '2', 'soilMoistBatt9': '1.40 V', 'soilMoistBatt9s': '4', 'soilMoistBatt10': '1.50 V', 'soilMoistBatt10s': '5', 'soilMoistBatt11s': 'None', 'soilMoistBatt12s': 'None', 'soilMoistBatt13s': 'None', 'soilMoistBatt14s': 'None', 'soilMoistBatt15s': 'None', 'soilMoistBatt16s': 'None', 'soilTemp1': '16.9C', 'soilTemp2': '16.3C', 'soilTemp3': '10.0C', 'soilTemp4': '-19.7C', 'soilTemp5': '19.4C', 'soilTemp6': '19.7C', 'soilTemp7': '22.6C', 'soilTemp8': '53.3C', 'soilTempBatt1': '1.54 V', 'soilTempBatt1s': '5', 'soilTempBatt2': '1.56 V', 'soilTempBatt2s': '5', 'soilTempBatt3': '1.54 V', 'soilTempBatt3s': '5', 'soilTempBatt4': '1.40 V', 'soilTempBatt4s': '4', 'soilTempBatt5': '1.42 V', 'soilTempBatt5s': '4', 'soilTempBatt6': '1.40 V', 'soilTempBatt6s': '4', 'soilTempBatt7': '1.54 V', 'soilTempBatt7s': '5', 'soilTempBatt8': '1.76 V', 'soilTempBatt8s': '5', 'srain_piezo': '0', 't_rain': '8.7 mm', 't_rainRate': '0.0 mm/h', 'thi_ch1': '2055 mm', 'upgrade': '0', 'UV': '5.0', 'vpd': '5.6 hPa' ``` -------------------------------- ### Ecowitt HTTP Driver: Live Data Retrieval Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Demonstrates how to run the Ecowitt HTTP driver to fetch live data from an Ecowitt GW3000 station. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --live-data ``` -------------------------------- ### Ecowitt HTTP Driver: Weewx Field Mapping Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Shows how to use the driver to list the Weewx fields it supports and maps to. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --weewx-fields ``` -------------------------------- ### Python Schema Configuration for Ecowitt Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Illustrates a Python code snippet for selecting the correct schema, specifically switching from a general 'wview' schema to an 'wview_ecowitt' schema, likely for handling Ecowitt station data. ```Python #schema = schemas.wview.schema schema = schemas.wview_ecowitt.schema ``` -------------------------------- ### Configure Weewx Startup Behavior Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md This snippet shows how to configure the 'loop_on_init' setting in weewx.conf. This setting controls whether WeeWX retries startup indefinitely or attempts it only once, which can help mitigate startup problems. ```config # The WeeWX 'loop_on_init' setting can be used to mitigate such # problems by having WeeWX retry startup indefinitely. Set to '0' to attempt # startup once only or '1' to attempt startup indefinitely. ``` -------------------------------- ### Weewx StdCalibrate Corrections for Heap Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Configuration snippet for weewx.conf under [StdCalibrate] [[Corrections]] to map the 'pb' value to 'heap' for tracking heap values. ```weewx.conf [StdCalibrate] [[Corrections]] pb = heap if heap is not None else None ``` -------------------------------- ### Ecowitt HTTP Driver: Device Discovery Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Initiates a discovery process to find Ecowitt devices on the network. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --discover ``` ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --discover ``` -------------------------------- ### Weewx Data Handling Notes Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Highlights data availability differences between Ecowitt cloud (ecowitt.net), SDCard (GW3000), and local HTTP API. Some data points are accessible via the cloud but not the local API. ```APIDOC Data Availability Notes: - Data accessible via ecowitt.net: - ch_lds?.ldsheat_ch1 ... ch4 - battery.rainfall_sensor - battery.wind_sensor - battery.haptic_array_capacitor - battery.console - battery.ws1900 - battery.ws1800 - battery.ws6006 - Data NOT accessible via local http-Api (get_livedata_info): - The same data points listed above. - Inconsistency exists between Ecowitt cloud, SDCard (GW3000), and local http-Api. ``` -------------------------------- ### Configuration: Accumulator and Extractor Settings Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Defines how data is accumulated and extracted for various weather parameters. The 'accumulator' specifies the overall strategy, while 'extractor' defines the method for individual data points (e.g., 'last', 'sum', 'max'). ```APIDOC Configuration Parameters: [Accumulator] [[model]] accumulator = firstlast extractor = last [[stationtype]] accumulator = firstlast extractor = last [[gain0]] extractor = last [[gain1]] extractor = last [[gain2]] extractor = last [[gain3]] extractor = last [[gain4]] extractor = last [[gain5]] extractor = last [[lightning_distance]] extractor = last [[lightning_strike_count]] extractor = sum [[lightning_last_det_time]] extractor = last [[lightningcount]] extractor = last [[maxdailygust]] extractor = last [[daymaxwind]] extractor = last [[windspdmph_avg10m]] extractor = last [[winddir_avg10m]] extractor = last [[rainRate]] extractor = max [[stormRain]] extractor = last [[hourRain]] extractor = last [[dayRain]] extractor = last [[weekRain]] extractor = last [[monthRain]] extractor = last [[yearRain]] extractor = last [[totalRain]] extractor = last [[rrain_piezo]] extractor = max [[erain_piezo]] extractor = last [[hrain_piezo]] extractor = last [[drain_piezo]] extractor = last [[wrain_piezo]] extractor = last [[mrain_piezo]] extractor = last [[yrain_piezo]] extractor = last [[p_rainrate]] extractor = max [[p_eventrain]] extractor = last [[p_hourrain]] extractor = last [[p_dayrain]] extractor = last [[p_weekrain]] extractor = last [[p_monthrain]] extractor = last [[p_yearrain]] extractor = last [[dayHail]] extractor = last [[hail]] extractor = sum [[vpd]] extractor = last [[depth_ch1]] extractor = last [[depth_ch2]] extractor = last [[depth_ch3]] extractor = last [[depth_ch4]] extractor = last [[pm2_51_24hav]] extractor = last [[pm2_52_24hav]] extractor = last [[pm2_53_24hav]] extractor = last [[pm2_54_24hav]] extractor = last [[24havpm255]] 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 [[wh25_batt]] extractor = last [[wh26_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 [[wn35_ch1_batt]] extractor = last [[wn35_ch2_batt]] extractor = last [[wn35_ch3_batt]] extractor = last [[wn35_ch4_batt]] extractor = last [[wn35_ch5_batt]] extractor = last [[wn35_ch6_batt]] extractor = last [[wn35_ch7_batt]] extractor = last [[wn35_ch8_batt]] extractor = last [[wh40_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 [[wh65_batt]] extractor = last [[wh68_batt]] extractor = last [[ws80_batt]] extractor = last [[ws85_batt]] extractor = last Parameters: - section: A logical grouping of related parameters (e.g., 'rainRate', 'wh25_batt'). - accumulator: Defines the primary accumulation strategy for a group (e.g., 'firstlast'). - extractor: Specifies the method to extract or aggregate a specific data point's value. - Possible values include: 'last' (most recent value), 'sum' (total sum), 'max' (maximum value). Usage: These configurations are typically placed within an extension's configuration file to control data processing and aggregation from weather station sensors. ``` -------------------------------- ### Weewx Database Schema Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Configuration in weewx.conf specifying the database schema to use, particularly for the wview_ecowitt schema. ```weewx.conf [DataBindings] [[wx_binding]] schema = schemas.wview.schema schema_new = schemas.wview_ecowitt.schema # -> is entered in this way by the installation! ``` -------------------------------- ### Ecowitt HTTP Driver: System Information Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Command to retrieve general system information from the Ecowitt station. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --system ``` -------------------------------- ### DataBindings: Database Connection Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Defines the connection and structure for binding weather data to a database. Specifies the database type, table name, data manager, and the schema file used for database creation. ```config [DataBindings] [[wx_binding]] # The database must match one of the sections in [Databases]. # This is likely to be the only option you would want to change. database = archive_sqlite # The name of the table within the database. table_name = archive # The manager handles aggregation of data for historical summaries. manager = weewx.manager.DaySummaryManager # The schema defines the structure of the database. # It is *only* used when the database is created. schema = schemas.wview_ecowitt.schema ``` -------------------------------- ### FOSHKplugin Configuration for Ecowitt Data Forwarding Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md This configuration block details how to set up the FOSHKplugin to forward Ecowitt data to WeeWx. It includes settings for data export, enabling additional items, and specifying the forwarding URL and type. ```INI [Export] EVAL_VALUES = True ADD_ITEMS = OUT_TEMP = OUT_HUM = OUT_TIME = False FIX_LIGHTNING = True UDP_MINMAX = False ADD_SIGNAL = True all Gateways support this (*sig) ADD_DEWPT = False ADD_MORE = True not all Gateways support this (see **) ADD_VPD = False [Forward-1] FWD_ENABLE = True FWD_CMT = Weewx Ecowittcustom 86 FWD_URL = http://192.168.0.93:8572/data/report/ FWD_INTERVAL = FWD_IGNORE = FWD_OPTION = blacklist=False FWD_TYPE = EW FWD_SID = FWD_PWD = FWD_STATUS = False FWD_MQTTCYCLE = 0 FWD_EXEC = ``` -------------------------------- ### Ecowitt HTTP Driver: Driver Configuration Mapping Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Retrieves and displays the driver-specific configuration mapping. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --driver-map ``` -------------------------------- ### Ecowitt HTTP Driver: Firmware Information Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Command to retrieve firmware details from the Ecowitt station using the driver. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --firmware ``` -------------------------------- ### Configure Min/Max/Sum Data Display (hilo.inc, statistics.inc) Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Configures how historical data (min, max, sum, average) is displayed in `hilo.inc` and `statistics.inc` files. Each entry is a tuple specifying the sensor value, label color, aggregation type, and visibility. The aggregation type determines whether min/max, sum, or average is shown. ```Python ('outTemp', '#e85d0d', '', '1') ``` ```APIDOC Parameter Structure: (value, labelcolor, aggregation_type, visibility) value: - string: The sensor data key (e.g., 'outTemp', 'pressure'). labelcolor: - string: Hex color code for the label (e.g., '#e85d0d'). - '': Uses default black color. aggregation_type: - '': Displays both minimum and maximum values. - 'max': Displays only the maximum value. - 'sum': Displays the sum of values. - 'avg': Displays the average value. - 'wx_bindingX, Text': Uses data from 'wx_bindingX' setting and appends 'Text' to the label for min/max. - 'sumwx_bindingX, Text': Combines 'sum' mode with 'wx_bindingX' data. - 'maxwx_bindingX, Text': Combines 'max' mode with 'wx_bindingX' data. - 'minwx_bindingX, Text': Combines 'min' mode with 'wx_bindingX' data. - 'avgwx_bindingX, Text': Combines 'avg' mode with 'wx_bindingX' data. visibility: - '1': Show the data if available. - '0': Never show the data, even if available (e.g., for indoor temperature). ``` -------------------------------- ### Ecowitt HTTP Driver: Service Configuration Mapping Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Retrieves and displays the service-specific configuration mapping for the driver. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --service-map ``` -------------------------------- ### Configure Current Data Display (current.inc) Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Defines how current sensor data is displayed in the `current.inc` file. Each entry is a tuple specifying the sensor value, label color, display mode (e.g., 'current', 'day', 'yesterday', 'trend', 'aqiepa'), and visibility. The display mode dictates how the data is aggregated or presented. ```Python ('outTemp', '#e85d0d', 'current', '1') # or ('outTemp','#e85d0d','day','1') ``` ```APIDOC Parameter Structure: (value, labelcolor, display_mode, visibility) value: - string: The sensor data key (e.g., 'outTemp', 'pressure', 'pm2_5'). labelcolor: - string: Hex color code for the label (e.g., '#e85d0d'). - '': Uses default black color. display_mode: - 'current': Displays the current value (default). - 'day': Displays the average for the current day. - 'yesterday': Displays the average for the previous day. - 'trend': Shows a 24hr or 3hr trend (e.g., for barometer). - 'deltatime': For duration values like 'sunShineDur'. - 'aqiepa': Computes US EPA Air Quality Index for PM2.5. - 'aqieea': Computes EU EEA Air Quality Index for PM2.5. - 'wx_bindingX, Text': Uses data from 'wx_bindingX' setting and appends 'Text' to the label. - 'daywx_bindingX, Text': Combines 'day' mode with 'wx_bindingX' data. - 'trendwx_bindingX, Text': Combines 'trend' mode with 'wx_bindingX' data. visibility: - '1': Show the data. - '0': Do not show the data, even if available. - '3': For text information or separators. ``` -------------------------------- ### Ecowitt HTTP Driver: Default Configuration Mapping Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Retrieves and displays the default mapping configuration for the driver. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --default-map ``` -------------------------------- ### Configure Signal Percentage Conversion in weewx.conf Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md This snippet shows how to configure the `weewx.conf` file to convert signal values (0-4) from Ecowitt sensors to percentages. This is useful for displaying signal strength accurately in skins like SeasonsEcowitt. ```Python [StdCalibrate] [[Corrections]] ws90_sig = ws90_sig * 25 if ws90_sig is not None else None ws85_sig = ws85_sig * 25 if ws85_sig is not None else None wh54_ch1_sig = wh54_ch1_sig * 25 if wh54_ch1_sig is not None else None ``` -------------------------------- ### Standard Weather Calculations Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Defines algorithms and preferences for various weather calculations, including solar radiation, pressure, and temperature, specifying software or hardware preference. ```config [StdWXCalculate] [[WXXTypes]] [[[maxSolarRad]]] algorithm = rs atc = 0.9 [[Calculations]] pressure = prefer_hardware altimeter = prefer_hardware appTemp = prefer_hardware barometer = prefer_hardware cloudbase = prefer_hardware dewpoint = prefer_hardware ET = prefer_hardware heatindex = software humidex = prefer_hardware inDewpoint = prefer_hardware maxSolarRad = prefer_hardware rainRate = prefer_hardware windchill = software windrun = prefer_hardware GTS = software, archive GTSdate = software, archive utcoffsetLMT = software, archive dayET = prefer_hardware, archive ET24 = prefer_hardware, archive yearGDD = software, archive seasonGDD = software, archive outVaporP = software, loop outSVP = software, loop outMixingRatio = software, loop outEquiTemp = software, loop outThetaE = software, loop outHumAbs = software, loop boilingTemp = software, loop ``` -------------------------------- ### Standard Archive Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Defines the record generation method for standard archiving. ```INI [StdArchive] record_generation = software ``` -------------------------------- ### Ecowitt HTTP Driver: Test Driver Functionality Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Executes a test to verify the core functionality of the Ecowitt HTTP driver. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --test-driver ``` -------------------------------- ### Weewx Database Expansion Scripts Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Shell scripts provided to expand an existing Weewx database with new data fields, specifically for Ecowitt data, for Version 4 and Version 5. ```shell Version 5 - add_ecowitt_data_v5.sh - add_ecowitt_allsignaldata_v5.sh Version 4 - add_ecowitt_to_wview_database.sh - add_ecowitt_to_wview_extended_database.sh ``` -------------------------------- ### Ecowitt Custom Python Extension Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/weewx/user/README.md This snippet represents the ecowittcustom.py extension for WeeWx. It includes custom support for Ecowitt GW3000, addressing a CO2/battery bug, and support for LDS Sensors. ```python ecowittcustom.py - GW3000 V1.0.8 co2_batt6= bug hidden - Support for LDS Sensor ``` -------------------------------- ### Seasons Ecowitt Skin Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Configures the SeasonsEcowitt skin, enabling it and setting the language and HTML root directory for the weather station data. ```config [[SeasonsEcowitt]] skin = SeasonsEcowitt enable = true lang =en # lang = de HTML_ROOT = /var/www/html/weewx ``` -------------------------------- ### GW1000 API Driver Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Configures the GW1000 driver, including polling interval, IP address, port, and various debugging and logging options. ```config [GW1000] driver = user.gw1000 # This section is for the GW1000 API driver. # How often to poll the GW1000 API, default is every 20 seconds: poll_interval = 20 ip_address = ???.???.???.??? # GW2000 port = 45000 #wh32 = True #ignore_legacy_wh40_battery = True #show_all_batt = False log_unknown_fields = True #debug_rain = False #debug_wind = False #debug_loop = False #debug_sensors = False ``` -------------------------------- ### General Skin Configuration Options Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Provides general configuration directives for the Seasons skin. This includes disabling font coloring and handling unit conversions for soil moisture data. ```jinja2 #set $usefontcolor = 0 ``` ```APIDOC Directive: #set $usefontcolor = value Purpose: - Controls whether the label color defined in the array is applied. Parameters: - value: - '0': Disables font coloring, using default text color. - '1': Enables font coloring, applying the specified label color. Note: - The skin handles unit conversions for soil moisture, using '%' instead of 'cb' as specified in Weewx. ``` -------------------------------- ### Ecowitt HTTP Driver: MAC Address Retrieval Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Command to fetch the MAC address of the Ecowitt station. ```Shell PYTHONPATH=/usr/share/weewx python3 /etc/weewx/bin/user/ecowitt_http.py --ip-address=%IP-GW3000% --mac ``` -------------------------------- ### GW3000 Connection and Restart Issues Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Describes common problems with the GW3000 device, including connection failures requiring a restart and indicators for when a restart is necessary. Live data display issues are also mentioned. ```APIDOC GW3000 Device Troubleshooting: - Connection Failure: - If the driver fails to connect to the GW3000 despite correct settings, a restart of the GW3000 is required. - Restart Indicators: - The display of live data via the local web interface becoming impossible is an indication that a restart (power off/on) is necessary. ``` -------------------------------- ### MQTT Python Extension Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/weewx/user/README.md This snippet represents the mqtt.py extension for WeeWx. It is designed for handling MQTT communication, likely for data publishing or subscription. ```python mqtt.py ``` -------------------------------- ### Day Boundary Stats Python Extension Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/weewx/user/README.md This snippet represents the dayboundarystats.py extension for WeeWx. It likely calculates statistics based on daily boundaries. ```python dayboundarystats.py ``` -------------------------------- ### Runtime and Debug Data Mapping Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/Ecowitt_http_default_mapping.txt Maps human-readable names to runtime and debug-related data points. ```mapping runtime: debug.runtime ``` -------------------------------- ### Weewx RadiationDays Configuration Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/README.md Configuration settings for the RadiationDays extension in weewx.conf, controlling sunshine and rain duration calculations, including minimum thresholds and coefficients. ```weewx.conf [RadiationDays] min_sunshine = 120 # Entry of extension radiationhours.py, if is installed (= limit value) sunshine_coeff = 0.8 # Factor from which value sunshine is counted - the higher the later sunshine_min = 18 # below this value (W/m²), sunshine is not taken into account. sunshine_loop = 1 # use for sunshine loop packet (or archive: sunshine_loop = 0) rainDur_loop = 0 # use for rain duration loop packet - default is not hailDur_loop = 0 # use for piezo-rain duration loop packet - default is not sunshine_log = 0 # should not be logged when sunshine is recorded rainDur_log = 0 # no logging for rain duration hailDur_log = 0 # no logging for piezo-rain duration ``` -------------------------------- ### StdWXCalculate: Derived Weather Data Origin Source: https://github.com/wernerkr/ecowitt-or-davis-stations-and-season-skin/blob/main/ecowitt_http/README.md Configures the origin of derived weather quantities, allowing selection between hardware, software, or a preference for hardware if available. Includes specific algorithm settings for certain measurements like maxSolarRad and ET. ```config [StdWXCalculate] [[Calculations]] # How to calculate derived quantities. Possible values are: # hardware - use the value provided by hardware # software - use the value calculated by weewx # prefer_hardware - use value provide by hardware if available, # otherwise use value calculated by weewx pressure = prefer_hardware altimeter = prefer_hardware appTemp = prefer_hardware barometer = 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 GTS = "software,archive" GTSdate = "software,archive" utcoffsetLMT = "software,archive" dayET = "prefer_hardware,archive" ET24 = "prefer_hardware,archive" yearGDD = "software,archive" seasonGDD = "software,archive" rain = prefer_hardware hail = prefer_hardware [[WXXTypes]] [[[maxSolarRad]]] algorithm = rs atc = 0.9 ```