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.

Reply via email to