Weather (.w / .wz / .wzset)#

Xerokewl fetches current conditions and (for non-METAR lookups) a short forecast. These commands work both in channel and as a private message (/msg Xerokewl <command>).

<you> .wz 94025
<Xerokewl> San Mateo, CA — 62°F (17°C), partly cloudy. …

Commands#

CommandWhat it does
.w <location> / .wz <location>Get weather for a one-off location.
.w / .wzUse your saved default location (see Getting registered).
.wz --user <nick>Use someone else’s saved default.
.wzset [--metar | --<provider>] [--metric|--imperial] <location>Save your default location (and units).
.wzset --metric|--imperialUpdate only your saved units (no location change).
.wzhelpPMs you this command list.

.w and .wz are aliases — same command. You can type either.

Flags#

  • --metar — raw aviation weather (METAR). Requires an ICAO code (e.g. .wz --metar KSFO). Anything else is rejected.
  • --<provider> — force a specific provider (e.g. --awn, --avwx). Bypasses auto-discovery so you can mix and match — e.g. .wz --avwx KSFO gets METAR without --metar, or .wz --weatherapi KSFO gets a general forecast for an ICAO code. Mutually exclusive with --metar.
  • --metric — show metric first, imperial second. (This is the default.)
  • --imperial — show imperial first, metric second.
  • Use --metric/--imperial with .wzset to change your saved default units.

Providers#

The bot pulls data from five upstream providers. When you don’t specify one, it auto-selects based on your location format (see Location formats). Use --<provider> to force a specific one.

FlagProviderWhat it returnsAuto-selected for
--weatherapiWeatherAPICurrent conditions + forecastZIP, city, IATA — the default fallback
--avwxaviationweather.govRaw METARICAO codes (also via --metar)
--aprsapi.aprs.fiPWS station dataCWOP callsigns (SSID 13)
--awnAmbient Weather NetworkPWS station dataAmbient URL or 32-char slug
--nwsapi.weather.govCurrent conditions + forecastNever — manual override only
<you> .wz --avwx KSFO
<Xerokewl> KSFO 221853Z 27014G18KT 10SM FEW045 18/08 A3002 …
<you> .wz --awn 0123456789abcdef0123456789abcdef
<Xerokewl> PWS: Backyard Station, San Mateo, CA :: 17.0C/62.0F …

--nws is for National Weather Service observation stations — official government weather stations identified by a station ID (e.g. KSFO, BNDC1). It’s never auto-selected; you must use --nws explicitly.

<you> .wz --nws BNDC1
<Xerokewl> BEN LOMOND (BNDC1) :: Clear :: 27.8C/82.0F (Humidity: 28%) …

Save a provider with .wzset --<provider> <location> so a bare .w uses it every time.

Location formats#

FormatExampleNotes
ZIP94025US zip code.
City, StateSan Mateo, CASpell it out; use the state.
IATA airport codeSFOGeneral weather near the airport.
ICAO codeKSFOWorks with --metar or --avwx.
NWS station IDBNDC1National Weather Service station. Requires --nws (never auto-selected).
Ambient Weather Network URLambientweather.net/dashboard/…A personal weather station dashboard URL — see Finding an Ambient Weather station.
32-char station slug0123456789abcdef0123456789abcdefAmbient station slug.
CWOP callsign (SSID 13)CALLSIGN-13APRS/CWOP station callsign with SSID 13.

ICAO codes (like KSFO) are routed to the METAR provider. For ordinary weather use the IATA code instead (e.g. SFO, not KSFO), or force WeatherAPI with .wz --weatherapi KSFO.

Finding an Ambient Weather station#

The Ambient Weather Network is a live map of privately-owned weather stations. Any station there can be a location for .w/.wz — handy when the nearest official station is miles off and you want readings from a station down the road.

To grab a station’s URL:

  1. Open ambientweather.net.
  2. Search for your area in the location box, or click Find My Location.
  3. Each dot on the map with a temperature next to it is a station. Click the one you want — it loads in the station list on the right.
  4. In that list, click View Dashboard.
  5. Copy the dashboard URL from your browser’s address bar. It looks like https://ambientweather.net/dashboard/ followed by a 32-character slug.

Then use it as the location — the full URL, or just the 32-character slug on its own, both work:

<you> .wz https://ambientweather.net/dashboard/0123456789abcdef0123456789abcdef
<Xerokewl> PWS: Backyard Station, San Mateo, CA :: 17.0C/62.0F (Feels like 16.0C/61.0F) …

Save it as your default with .wzset <URL or slug>.

Saving a default (.wzset)#

.wzset <location> saves a default so a bare .w / .wz returns your weather without typing the location every time. Your default is stored against your eggdrop handle — which is why you have to be registered for it to work.

<you> .wzset 94025
<Xerokewl> Preference updated. Default is now 94025 --imperial
<you> .w
<Xerokewl> San Mateo, CA — …   (uses your saved default + units)

You can also save a METAR default: .wzset --metar KSFO, or a provider default: .wzset --awn <slug>.

Getting registered#

The single most common confusion: you run .wzset, or a bare .w, and the bot tells you it doesn’t recognize you. That has two causes — you have no bot record at all, or you do but your current hostmask isn’t on it (your IP/host changed). This section covers the first; for the second see Not recognized by the bot.

The bot doesn’t auto-add users — every user record is created by hand by a botmaster. So to save a default, you need a record. Here’s how to get one:

  1. Ask a channel operator (chanop) to add you. If the op you ask isn’t a botmaster, they can find one on the bot partyline — see the chanop cheat sheet.
  2. A botmaster creates your record with .+user <handle> <hostmask> — see the botmaster cheat sheet. You’ll be non-privileged by default (no flags), and that’s fine — you don’t need any flags to save weather preferences, just a record.
  3. The bot should now recognize you by your hostmask. If it doesn’t (your IP/host changed — dynamic ISP, VPN, travel), ident — that re-matches you to your handle and saves your current host for next time — see the eggdrop cheat sheet.
  4. Now .wzset <location> works, and a bare .w / .wz uses your saved default.

You don’t have to wait to be registered to use weather at all — .wz <location> (with a location) works for anyone, no record needed. Getting registered is only required for saving a default and using the bare .w / .wz form.

Not recognized by the bot#

When you run a bare .w / .wz or .wzset and the bot doesn’t recognize you, there are exactly two reasons. Both produce the same message, so this section tells them apart and links to each remedy.

  1. You have no bot record. You’ve never been added — see Getting registered to get one (ask a chanop, and a botmaster creates it).
  2. You have a record, but your current hostmask isn’t on it. Your IP or hostname changed — dynamic ISP, VPN, travel, a different nick — so the bot can’t match you to your record. Ident to re-match your current host and save it for next time: see Ident when your hostmask changed on the eggdrop cheat sheet.

In the meantime, .wz <location> (with a location) works for anyone, no record or ident needed.

The bot is a pass-through, not the data source#

Xerokewl pulls data from upstream providers — WeatherAPI, aviationweather.gov, the Ambient Weather Network, APRS/CWOP, and api.weather.gov (NWS) — and does not generate or control any of it. A wrong temperature, a stale METAR, a station that’s down, or a “location not found” that you know exists — that’s the upstream provider, not the bot. There’s nothing to “fix” on the bot side; try a different location format (ZIP vs city vs IATA) or wait for the provider to update. (Same idea as the search bot — blame the source, not the messenger.)

Error messages#

You seeWhy
You must be registered and recognized by the bot to use a saved default. Ask an op to add you, or ident if your host changed: <link>You ran a bare .w/.wz but the bot doesn’t recognize you — either no record, or your hostmask changed. See Not recognized by the bot; for now use .wz <location>.
You must be registered and recognized by the bot to save a default. Ask an op to add you, or ident if your host changed: <link>You ran .wzset but the bot doesn’t recognize you — either no record, or your hostmask changed. See Not recognized by the bot.
<nick> is not registered with the bot.You used .wz --user <nick> and that nick has no record.
No default set. Use .wzset <location>. / No default location set. Use .wzset <location> to save one.You have a record but no saved location. Run .wzset <location>.
Unknown location. Try .wzhelp for usage. / Unknown location format. Try .wzhelp for usage.The bot couldn’t parse your location. Try another format.
--metar is only valid with ICAO codes (e.g. KSFO). Location not saved.You passed --metar with a non-ICAO location.
--metar requires an ICAO code (e.g. KSFO). …You passed --metar with no location.
Unknown flag '<flag>'. Available providers: --aprs, --avn, --avwx, --nws, --weatherapi.You passed an unrecognized --flag.
Use --metar or --<provider>, not both. Try .wzhelp for usage.You passed both --metar and a --<provider> flag.
--<provider> requires a location. …You passed a provider flag without a location.
<provider name> can't handle that location.You forced a provider on a location it doesn’t support (e.g. --awn 94025).
<provider error> Location not saved — check the location and try .wzset again.The provider rejected the location while saving.

Run .wzhelp in channel or /msg Xerokewl wzhelp any time for the command list.