Hallo Arend, Yes, it's working!
Just aligning the new line after #25-10.4 solved the problem, manymany thanks! Best regards, Keimpe Op woensdag 28 oktober 2020 om 15:31:29 UTC+1 schreef Arend: > Hi Keimpe, > > I have a suspicion why it didn't work out for you. Copying your code from > your previous post into a text editor revealed that the changes you made > were not properly alligned. The Python language is sensitive to > indentation. The screenshot below shows a green and red line. The second > eqmag (#25-10.4) should have been lined up to the green line like the first > eqmag (#25-10.3). But instead it was lined up to the red line, probably > causing an exception (error) which would result in displaying that there > was no earthquake data available. > > [image: Toelichting uitlijning code.png] > > I have included a new version of belchertown.py that has already been > modified with the correct changes. Could you be so kind to download this > file and use it to replace the existing belchertown.py. If this works then > I will use this file for a pull request. > > > Mvg, Arend > > > Op woensdag 28 oktober 2020 om 11:38:34 UTC+1 schreef [email protected]: > >> Hoi Arend, >> >> Thanks for your efforts. >> >> Now changed back to the original file and (of cours) the EQ data is back, >> as expected in 'mijl'. >> In the log there is no related error, the only recursive error is a >> Failed to publish record .... to WOW. >> Undermentioned you may find the earthquake section of belchertown.py with >> the recommended changes. Between empty lines the original lines ar >> commented out with #25-10.1 (#date and 1 is the line-number as suggested in >> your GitHub post), following the line copied from GitHub. >> >> Regards, Keimpe >> >> >> """ >> Earthquake Data >> """ >> # Only process if Earthquake data is enabled >> if self.generator.skin_dict['Extras']['earthquake_enabled'] == >> "1": >> earthquake_file = html_root + "/json/earthquake.json" >> earthquake_stale_timer = >> self.generator.skin_dict['Extras']['earthquake_stale'] >> latitude = self.generator.config_dict['Station']['latitude'] >> longitude = self.generator.config_dict['Station']['longitude'] >> >> #25-10.1 distance_unit = converter.group_unit_dict["group_distance"] >> distance_unit = >> self.generator.converter.group_unit_dict["group_distance"] >> >> eq_distance_label = >> self.generator.skin_dict['Units']['Labels'].get(distance_unit, "") >> eq_distance_round = >> self.generator.skin_dict['Units']['StringFormats'].get(distance_unit, >> "%.1f") >> earthquake_maxradiuskm = >> self.generator.skin_dict['Extras']['earthquake_maxradiuskm'] >> #Sample URL from Belchertown Weather: >> http://earthquake.usgs.gov/fdsnws/event/1/query?limit=1&lat=42.223&lon=-72.374&maxradiuskm=1000&format=geojson&nodata=204&minmag=2 >> if self.generator.skin_dict['Extras']['earthquake_server'] == >> "USGS": >> earthquake_url = " >> http://earthquake.usgs.gov/fdsnws/event/1/query?limit=1&lat=%s&lon=%s&maxradiuskm=%s&format=geojson&nodata=204&minmag=2" >> >> % ( latitude, longitude, earthquake_maxradiuskm ) >> elif self.generator.skin_dict['Extras']['earthquake_server'] >> == "GeoNet": >> earthquake_url = "https://api.geonet.org.nz/quake?MMI=4" >> earthquake_is_stale = False >> >> # Determine if the file exists and get it's modified time >> if os.path.isfile( earthquake_file ): >> if ( int( time.time() ) - int( os.path.getmtime( >> earthquake_file ) ) ) > int( earthquake_stale_timer ): >> earthquake_is_stale = True >> else: >> # File doesn't exist, download a new copy >> earthquake_is_stale = True >> >> # File is stale, download a new copy >> if earthquake_is_stale: >> # Download new earthquake data >> try: >> try: >> # Python 3 >> from urllib.request import Request, urlopen >> except ImportError: >> # Python 2 >> from urllib2 import Request, urlopen >> user_agent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS >> X 10_6_4; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 >> Safari/534.3' >> headers = { 'User-Agent' : user_agent } >> req = Request( earthquake_url, None, headers ) >> response = urlopen( req ) >> page = response.read() >> response.close() >> if weewx.debug: >> logdbg( "Downloading earthquake data using >> urllib2 was successful" ) >> except Exception as forecast_error: >> if weewx.debug: >> logdbg( "Error downloading earthquake data with >> urllib2, reverting to curl and subprocess. Full error: %s" % forecast_error >> ) >> # Nested try - only execute if the urllib2 method >> fails >> try: >> import subprocess >> command = 'curl -L --silent "%s"' % earthquake_url >> p = subprocess.Popen(command, shell=True, >> stdout=subprocess.PIPE, stderr=subprocess.STDOUT) >> page = p.communicate()[0] >> if weewx.debug: >> logdbg( "Downloading earthquake data with >> curl was successful." ) >> except Exception as error: >> raise Warning( "Error downloading earthquake data >> using urllib2 and subprocess curl. Your software may need to be updated, or >> the URL is incorrect. You are trying to use URL: %s, and the error is: %s" >> % ( earthquake_url, error ) ) >> >> # Save earthquake data to file. w+ creates the file if it >> doesn't exist, and truncates the file and re-writes it everytime >> try: >> with open( earthquake_file, 'wb+' ) as file: >> # Python 2/3 >> try: >> file.write( page.encode('utf-8') ) >> except: >> file.write( page ) >> if weewx.debug: >> logdbg( "Earthquake data saved to %s" % >> earthquake_file ) >> except IOError as e: >> raise Warning( "Error writing earthquake data to %s. >> Reason: %s" % ( earthquake_file, e) ) >> >> # Process the earthquake file >> with open( earthquake_file, "r" ) as read_file: >> try: >> eqdata = json.load( read_file ) >> except: >> eqdata = "" >> >> try: >> if >> self.generator.skin_dict['Extras']['earthquake_server'] == "USGS": >> eqtime = eqdata["features"][0]["properties"]["time"] >> / 1000 >> equrl = eqdata["features"][0]["properties"]["url"] >> eqplace = eqdata["features"][0]["properties"]["place"] >> >> #25-10.3 eqmag = eqdata["features"][0]["properties"]["mag"] >> eqmag = locale.format("%g", >> float(eqdata["features"][0]["properties"]["mag"]) ) >> >> elif >> self.generator.skin_dict['Extras']['earthquake_server'] == "GeoNet": >> eqtime = eqdata["features"][0]["properties"]["time"] >> #convert time to UNIX format >> eqtime = eqtime.replace("Z","") >> eqtime = datetime.datetime.fromisoformat(eqtime) >> eqtime = >> int(eqtime.replace(tzinfo=datetime.timezone.utc).timestamp()) >> equrl = ("https://www.geonet.org.nz/earthquake/" + >> >> eqdata["features"][0]["properties"]["publicID"]) >> eqplace = >> eqdata["features"][0]["properties"]["locality"] >> >> #25-10.4 eqmag = >> round(eqdata["features"][0]["properties"]["magnitude"],1) >> eqmag = locale.format("%g", >> float(round(eqdata["features"][0]["properties"]["magnitude"],1)) ) >> >> eqlat = str( round( >> eqdata["features"][0]["geometry"]["coordinates"][1], 4 ) ) >> eqlon = str( round( >> eqdata["features"][0]["geometry"]["coordinates"][0], 4 ) ) >> eqdistance_bearing = >> self.get_gps_distance((float(latitude), float(longitude)), >> (float(eqlat), >> float(eqlon)), >> distance_unit) >> >> #25-10.2 eqdistance = eq_distance_round % eqdistance_bearing[0] >> eqdistance = locale.format("%g", float(eq_distance_round >> % eqdistance_bearing[0]) ) >> >> eqbearing = eqdistance_bearing[1] >> eqbearing_raw = eqdistance_bearing[2] >> except: >> # No earthquake data >> eqtime = label_dict["earthquake_no_data"] >> equrl = "" >> eqplace = "" >> eqmag = "" >> eqlat = "" >> eqlon = "" >> eqdistance = "" >> eqbearing = "" >> eqbearing_raw = "" >> >> else: >> eqtime = "" >> equrl = "" >> eqplace = "" >> eqmag = "" >> eqlat = "" >> eqlon = "" >> eqdistance = "" >> eqbearing = "" >> eqbearing_raw = "" >> eq_distance_label = "" >> >> >> Op dinsdag 27 oktober 2020 om 22:54:22 UTC+1 schreef Arend: >> >>> I am going to make a pull request out of this issue, hopefully Pat will >>> incorporate this fix into the master. That way you will be able to download >>> it from the repository. >>> In the mean time you could try to replace the modified file with the >>> original from the repo and see what happens. Did you check your logs for >>> errors? >>> >>> Mvg, Arend >>> >>> Op dinsdag 27 oktober 2020 om 21:36:04 UTC+1 schreef [email protected]: >>> >>>> Hi Arend, >>>> >>>> Thanks for the suggestions. >>>> >>>> - The JSON tels me about an eartquake 6 km E of Belle-Plagne in >>>> France, and lat=53.254&lon=5.895&maxradiuskm=2000 as set in my config, >>>> seems OK to me. >>>> - The config is same as yours >>>> - I checked the changes in belchertown.py, the only difference with >>>> your fixes is the order of the 4 lines, they do not come across these >>>> consecutively from top to bottom as you suggested, but first 1 (line >>>> 1060), >>>> then 3 (line 1139), then 4 (line 1152) and finally 2 (line 1161). I >>>> copy/pasted the lines (again) from GitHub in the editor. >>>> >>>> And still no data... >>>> >>>> Regards, Keimpe >>>> >>>> Op dinsdag 27 oktober 2020 om 20:51:31 UTC+1 schreef Arend: >>>> >>>>> Goedenavond Keimpe, >>>>> >>>>> You can check your earthquake file typing this into your browser: >>>>> >>>>> http://oentsjerk.eu/json/earthquake.json >>>>> >>>>> It shows the same data as mine which means it is loaded/updated >>>>> correctly, check the epoch timestamp to verify when it was >>>>> downloaded/updated. >>>>> Are you sure you copied the changes the right way (without additional >>>>> tabs or spaces)? >>>>> Are there no errors in your logs? >>>>> My configuration shows this: >>>>> >>>>> # Earthquake defaults >>>>> earthquake_enabled = 1 >>>>> earthquake_maxradiuskm = 2000 >>>>> earthquake_stale = 10740 >>>>> earthquake_server = USGS >>>>> >>>>> Does it match yours? >>>>> >>>>> Mvg, Arend >>>>> >>>>> Op dinsdag 27 oktober 2020 om 19:30:46 UTC+1 schreef [email protected] >>>>> : >>>>> >>>>>> Hi Arend, >>>>>> >>>>>> Stil no recent earthquake data avilable (http://oentsjerk.eu). Can I >>>>>> have your URL to check the actuality? >>>>>> >>>>>> Regards, Keimpe >>>>>> >>>>>> >>>>>> Op zondag 25 oktober 2020 om 11:46:06 UTC+1 schreef [email protected] >>>>>> : >>>>>> >>>>>>> Goedemiddag Arend, >>>>>>> >>>>>>> Thnx, changes made! >>>>>>> At this time it says 'no recent data avilabale' so I have to wait >>>>>>> for een eartqauke data-update. >>>>>>> Keep you informed. >>>>>>> >>>>>>> Regards, Keimpe >>>>>>> >>>>>>> Op zaterdag 24 oktober 2020 om 21:46:02 UTC+2 schreef Arend: >>>>>>> >>>>>>>> Hi Keimpe, >>>>>>>> >>>>>>>> I had the same problem and created an issue about this in the repo. >>>>>>>> You can use the fix, let me know if it works for you. >>>>>>>> >>>>>>>> https://github.com/poblabs/weewx-belchertown/issues/422 >>>>>>>> >>>>>>>> Mvg, Arend >>>>>>>> >>>>>>>> Op zaterdag 24 oktober 2020 om 21:04:04 UTC+2 schreef >>>>>>>> [email protected]: >>>>>>>> >>>>>>>>> Thnx Vince, Strange, also on mobile, WLAN and 4G network, the same >>>>>>>>> problem so it can't be a localization issue related to the network. >>>>>>>>> >>>>>>>>> >>>>>>>>> Op zaterdag 24 oktober 2020 om 20:49:37 UTC+2 schreef vince: >>>>>>>>> >>>>>>>>>> On Saturday, October 24, 2020 at 10:47:03 AM UTC-7, >>>>>>>>>> [email protected] wrote: >>>>>>>>>>> >>>>>>>>>>> I'm facing just a minor issue: in the skin.conf is defined >>>>>>>>>>> 'earthquake_maxradiuskm = 2000'. Therefore I'm expecting a distance >>>>>>>>>>> in >>>>>>>>>>> km's, but the actual distance as well as the units are still in >>>>>>>>>>> miles (mijl >>>>>>>>>>> in Dutch). How to resolve this? (http://oentsjerk.eu/) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> I see km when I look at your page. >>>>>>>>>> >>>>>>>>> -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/d88bcb19-f129-4f90-8c11-d32da9b63b7dn%40googlegroups.com.
