Ping & Path Bots
The trigger words and reply format used by regional path bots in the NZ #testing channel.
Ping and path bots answer a trigger word in the #testing channel with the route your message took to reach them. They are how you find out whether your node can reach a region, how many repeaters it went through, and which ones.
A region can run more than one. All of them live in #testing - see Channels for how to join it.
Using a bot
Section titled “Using a bot”Send !bot to #testing. Every bot in range answers with its own trigger word:
@[Your Node] Use "wre" for WhangareiThen send that trigger word on its own to get a path report:
@[Your Node] 🦈=2 🦘=3 🛣️=1942, 0C37, E6D1The markers are the bot owner’s choice. Some use text instead, with the same fields:
@[Your Node] hash=2 hops=3 path=1942, 0C37, E6D1The values change with the path. From a sender using 1-byte paths:
@[Your Node] 🦈=1 🦘=3 🛣️=CF, AB, 59Reading the reply
Section titled “Reading the reply”Every reply opens with @[Your Node] - your node name, so your client knows the reply is for you. Then three fields, in whichever marker set the bot uses:
| Marker | Text | Meaning |
|---|---|---|
| 🦈 | hash= |
Path hash size in bytes - how many bytes identify each repeater in the path. Matches the 1/2/3-byte prefix modes |
| 🦘 | hops= |
Hops: how many repeaters the message passed through on its way to the bot |
| 🛣️ | path= |
The path itself, in order - the hex prefix of each repeater the message went through |
So 🦈=2 🦘=3 🛣️=1942, 0C37, E6D1, or hash=2 hops=3 path=1942, 0C37, E6D1, means three hops, identified by 2-byte prefixes, via repeaters 1942, 0C37, then E6D1.
Regional bots
Section titled “Regional bots”Every path bot must be listed here, with the area it covers and who runs it - preferably with a way to reach them. An unlisted bot is one nobody can ask about when it misbehaves.
Triggers must be unique nationally. Beyond that they are free: most start from the IATA codes proposed for regions, but akl north, or anything else unclaimed, is equally fine. Agreeing a single national scheme has been tried and did not converge - unique and listed is what actually works.
Four to a region is about the practical limit.
Listed north to south.
| Trigger | Region | Software | Owner |
|---|---|---|---|
wre |
Whangarei | OwlShack | |
akl |
Auckland | OwlShack | 🐶Wes |
hlz |
Hamilton | Custom | 🏍️Leyton |
tga |
Tauranga | OwlShack | |
npl |
New Plymouth | meshcore-ha | |
wlg hutt |
Lower Hutt, Wellington | OwlShack | CJC |
wlg |
Wellington | OwlShack | |
wlg karori |
Wellington | OwlShack | be1a |
nsn mapua |
Māpua, Nelson | OwlShack | Gav |
chc |
Cashmere, Christchurch | OwlShack | Gav |
Writing a bot
Section titled “Writing a bot”If you are building or configuring one, match this pattern - people rely on the fields being the same everywhere. The markers are yours to choose; the fields and their order are not.
Respond to !bot with your trigger word and region name:
@[<Sender Name>] Use "<Your Trigger>" for <Area You Cover>Respond to your trigger word with the path report:
@[<Sender Name>] 🦈=<Path hash size in bytes> 🦘=<Hops from sender to bot> 🛣️=<Path the message took>or with text markers:
@[<Sender Name>] hash=<Path hash size in bytes> hops=<Hops from sender to bot> path=<Path the message took>Pick one set and stay with it, so your region’s replies look the same every time.
Reply at the same path hash size the sender used. A node testing on 1-byte paths needs a 1-byte answer to compare against; converting it to 2-byte makes the reply useless for the thing the sender was trying to measure. This is the single most important detail - check your bot software does it before you deploy.
Beyond that, the rules for every bot apply: one short reply per trigger, and nothing sent unprompted. Channel messages flood by nature, so every reply is carried by the whole mesh - that is what makes a chatty bot expensive.