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#
| Command | What it does |
|---|---|
.w <location> / .wz <location> | Get weather for a one-off location. |
.w / .wz | Use 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|--imperial | Update only your saved units (no location change). |
.wzhelp | PMs 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 KSFOgets METAR without--metar, or.wz --weatherapi KSFOgets 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/--imperialwith.wzsetto 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.
| Flag | Provider | What it returns | Auto-selected for |
|---|---|---|---|
--weatherapi | WeatherAPI | Current conditions + forecast | ZIP, city, IATA — the default fallback |
--avwx | aviationweather.gov | Raw METAR | ICAO codes (also via --metar) |
--aprs | api.aprs.fi | PWS station data | CWOP callsigns (SSID 13) |
--awn | Ambient Weather Network | PWS station data | Ambient URL or 32-char slug |
--nws | api.weather.gov | Current conditions + forecast | Never — 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#
| Format | Example | Notes |
|---|---|---|
| ZIP | 94025 | US zip code. |
| City, State | San Mateo, CA | Spell it out; use the state. |
| IATA airport code | SFO | General weather near the airport. |
| ICAO code | KSFO | Works with --metar or --avwx. |
| NWS station ID | BNDC1 | National Weather Service station. Requires --nws (never auto-selected). |
| Ambient Weather Network URL | ambientweather.net/dashboard/… | A personal weather station dashboard URL — see Finding an Ambient Weather station. |
| 32-char station slug | 0123456789abcdef0123456789abcdef | Ambient station slug. |
| CWOP callsign (SSID 13) | CALLSIGN-13 | APRS/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, notKSFO), 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:
- Open ambientweather.net.
- Search for your area in the location box, or click Find My Location.
- 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.
- In that list, click View Dashboard.
- 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:
- 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.
- 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. - 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.
- Now
.wzset <location>works, and a bare.w/.wzuses 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/.wzform.
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.
- You have no bot record. You’ve never been added — see Getting registered to get one (ask a chanop, and a botmaster creates it).
- 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 see | Why |
|---|---|
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.