When calling LocationPlugin with a callsign outside of the US,
the forecast.weather gov wasn't raising an exception. A valid json
dict was coming back, but it didn't have location data we were
expecting.
This patch adds the healthcheck app that uses the flask stats url
to fetch the internal stats of a running aprsd server. If the server is
up the stats will return and be checked for 'healthy' status.
IF the url fails to return, healthcheck will exit with -1. You can use
this script to restart aprsd if healthcheck exits with -1 status.
There is a check against the email thread. The email thread updates a
deadman's timer every 5 seconds. If that time gets older than 5
minutes, then healthcheck will say that's a failure and exit with -1.
You can call healthcheck and restart aprsd if it fails (exit -1)
This patch adds the stats object to collect statistics of
the running server. This also optionally adds the ability
to run a flask web service on a port to use as a keepalive
healthcheck.
This patch reorganizes the config file layout and options
to make more logical sense as well as make it more readable.
This breaks backwards compatibility.
This patch adds the openweathermap weather plugin.
Also adds a new config option to set the overall
units setting from imperial (default) to metric.
to change it add the following to the ~/.config/aprsd/aprsd.yaml
...
aprsd:
units: metric
This patch adds 2 new time plugins to allow admins to use their
opencagedata APIkey or openweathermap API key to fetch the timezone
from the lat/lon GPS coordinates for the callsign requesting the time.
This will enable fetching the time local to the ham radio's last beacon,
and not time local to the aprsd server instance running. If the
location is not found, then the timezone will default to UTC.
The 2 new plugins are
- aprsd.plugins.time.TimeOpenCageDataPlugin
Fetches timezone from lat/lon using the opencagedata api that can be
found here: https://opencagedata.com/dashboard#api-keys
This requires a new ~/.config/aprsd/aprsd.yml entry to specify the
api key.
opencagedata:
apiKey: <the api key hash here>
- aprsd.plugins.time.TimeOWMPlugin
Fetches the timezone from lat/lon using the openweathermap api
that can be found here: https://home.openweathermap.org/api_keys
This requires a new ~/.config/aprsd/aprsd.yml entry to specify the
api key.
openweathermap:
apiKey: <the api key hash here>
The existing time plugin had a hard coded PDT for pacific timezone,
when it wasn't. This patch adds some real timezone conversion from
utc to the tz of the running aprsd server. This will eventually allow
us to use either the tz of the running aprsd and/or the tz of the
calling callsign if we can just get the tz string from the location
beacon of the caller's callsign.
This patch adds a new CLI app called aprsd-dev. arpsd-dev is
used specifically for developing plugins. It allows you to run a
plugin directly without the need to run aprsd server.
This patch also adds the Weather Metar plugin called WxPlugin.
You can use it to fetch METAR from the nearest station for a callsign
or from a known METAR station id. Call WxPlugin with a message of
'wx' for closest metar station or 'wx KAUN' for metar at KAUN wx station
This patch re-enables some log.debug messages for email, to ensure
we can see emailthread is running correctly. Also adds a timestamp
to the query pending messages, so radios don't think it's a duplicate
message.
This patch adds a new add_config_comments() function in utils.py
that allows you to insert a comment string in a raw_yaml string
that's already been created from the yaml.dump() call.