---
title: "Routers, devices and Starlink | Kilobat Docs"
url: "https://kilobat.app/docs/home-network"
description: "Starlink, the router check-up, new devices on your home Wi-Fi and household Macs."
---

# Routers, devices and Starlink

Starlink, the router check-up, new devices on your home Wi-Fi and household Macs.

## Starlink

On a Starlink dish’s network, Health shows a Starlink panel. Kilobat finds the dish by asking it for its status at 192.168.100.1, the address the Starlink app uses, when the network changes and every five minutes otherwise; without a dish the request fails in about a second and nothing shows. It reads the dish’s local API over gRPC-Web (port 9201) or gRPC (port 9200) on your own network, only reads, and never stows, reboots or reconfigures the dish. Nothing about it leaves your Mac.

- **Status.** Online, obstructed, searching or restarting; ping to Starlink’s ground station and how many of those pings were lost; what the dish moves right now for every device; how long it has been up; its software version.
- **Alerts** in plain words with what to do: slowed or shut down by heat, melting snow, motors stuck, a tilted mast, outside its service area, a slow cable, water, and an update waiting for a restart.
- **Sky map.** The dish’s own obstruction map in Kilobat’s colours: blue where it has seen satellites clearly, rose where something blocked them, with the direction and height in a sentence, such as “Blocked to the north-east, low in the sky, like a tree, a building or a hill.” With how often the sky is blocked and for how long.
- **Outages** from the dish’s log, kept on your Mac for 30 days, each sorted to the side that can fix it: **your setup** (obstructions, heat, power save, cable), **Starlink’s network** (no satellite in view, no reply from the ground station) or **dish restarts** (updates, repositioning). The report for your provider includes this log, without the dish’s serial number or location.
- **Calls.** A call freeze during a dish outage or obstruction is put down to it: something blocked the sky, no satellite was in view, or the dish restarted.
- **Data plan.** Roam 100 GB, Roam 300 GB or Unlimited: a capped plan marks the network metered and, with Pro, sets a monthly budget of the cap. The budget counts this Mac; the panel also shows what the dish carried for every device in the last 15 minutes.

The dish’s status, ping, alerts, how much of the sky is blocked and the sky map are free, and so are `kilobat starlink` and its MCP tool. Which way it’s blocked and what to move, the outages sorted by side, Starlink as the cause of a call freeze or a stutter, the dish’s log in the report for your provider and Roam budgets are part of Kilobat Pro. With your own router in bypass mode, the dish is usually still reachable; if not, add a route to 192.168.100.0/24 through the router’s WAN port. In the terminal, `kilobat starlink` prints the same, and agents read it through `get_starlink_status`.

## Router check-up

Some routers get slower the longer they run, and a restart puts them right for a while. With Kilobat Pro, Health watches for that and says so: “Your router has been getting slower. For 3 days, its replies have taken 19 ms instead of 4 ms. Restarting it fixed this the last 3 times.” It uses the background check Kilobat already runs about once a minute, a ping to the router and a name lookup, and counts only checks made while your Mac’s own traffic was light and no Wi-Fi sign-in page was in the way, since a big download, a call or a hotel’s login page makes any router look slow. Nothing extra goes over the network.

It needs 7 days with enough quiet checks on a network before it judges anything, and compares each router with itself: its usual day over the two weeks before. It only speaks up when each of the last three days with data is clearly worse: replies at least twice the usual and at least 5 ms slower, at least 3 points more lost pings, or the connection dropping at least 3 times a day. One bad evening, a weekend away or a busy afternoon never counts. Neither does a weaker Wi-Fi signal, another band or another mesh access point; Health points to those instead. Slower name lookups through the router are mentioned, but never raise it on their own, since they also time your provider’s servers. Each network and router keeps its own history; a new router on the same network starts over.

When you restart the router, tap *I restarted it*. Kilobat also notices a restart by itself when the router goes away for 30 seconds to 10 minutes while the Mac is awake and the same router comes back. A day later it compares the day after with the day before and the router’s usual: “Since the restart: back to 4 ms ✓”, or that it didn’t help. That history is what the next finding quotes. When restarting hasn’t helped twice, it suggests a firmware update, a more open spot or, for an old router, a new one. A restart Kilobat only saw is never counted as one that didn’t help, since a Mac’s Wi-Fi dropping looks the same from here. With your router connected (below), Kilobat reads its own uptime, so every restart counts, even one overnight while the Mac slept. You get one notification per slowdown, at most one a week; turn it off in Settings › Monitoring. In the terminal, `kilobat router` shows the router’s normal against now, the last two weeks and the restarts, and agents get it through `get_router_checkup`.

## New devices on your home Wi-Fi

Open Tools › Devices on your home network and turn on *This is my home network* (also in Settings › Network). Kilobat first learns every device that’s already there without a word, then looks again every few minutes, every fifteen in Low Power Mode, and notifies you when one it hasn’t seen joins: “A new device joined” with your network’s name, then the device’s name or maker, its address and when it arrived. *That’s mine* files it away; *I don’t know it* opens Devices on it with what Kilobat knows and what to do: find it in your router’s list of connected devices, and if it’s still a stranger, change the Wi-Fi password. New devices carry a New badge in the list, where you can name each one and say whether it’s yours, unknown to you or ignored. Kilobat watches only the networks you mark, never a hotspot or a café unless you mark it.

A look sends one empty packet to each address in your Mac’s own subnet (254 at most) so that macOS learns who answers, then reads the Mac’s neighbour list. The name a new device gives itself comes from your router and Bonjour on your network, never from DNS servers beyond it. Phones and laptops use a private Wi-Fi address, which hides the maker and can change; Kilobat recognises one that changed by the specific name it goes by, such as Ritas-iPad, but not by a name every such device shares, such as iPhone. A device that is asleep or never answers may not show up. What Kilobat finds stays in a file on your Mac. With your router’s traffic counters (UPnP), a call report that blames another device on your network names it when exactly one device joined in the ten minutes before the freeze: “caused by Rita’s iPad downloading”. In the terminal, `kilobat devices` marks each device new, known, unknown or ignored, and `kilobat devices mark <MAC> mine` answers for one. New-device alerts are part of Kilobat Pro, like the Devices tab.

## Device types and camera upload

Devices lists what kind of device each one is: camera, doorbell, TV or streaming stick, casting device, speaker, printer, smart plug or switch, hub or bridge, game console, phone or tablet, computer, drone or action camera (DJI, GoPro, Insta360), router or mesh node, NAS, or unknown. Kilobat reads it from the Bonjour services a device announces on your network (a Google Cast receiver, AirPlay, a printer, Sonos, a HomeKit accessory’s category, a Matter device type), the UPnP description it serves on your network, the maker registered for its address and the name it goes by. It keeps only model and maker names from these, never the name you gave a speaker or a TV. When a device says what it is, the type is plain: “Camera (Wyze)”. When only its maker or name hints at it, Kilobat says “Probably a camera (Wyze)” or “Maybe a smart plug or switch”, and the new-device notification names the type, “A new Wyze camera joined”, only when it is sure. Tags mark HomeKit and Matter devices and Thread border routers, such as a HomePod mini or an Apple TV. If Kilobat got it wrong, choose the type in the device’s details (including Unknown type to suppress a guess), or run `kilobat devices type <MAC> camera`; `auto` goes back to Kilobat’s reading. `kilobat devices --json` and MCP `list_devices` add `type`, `confidence` (set, high, medium or low), `typeLabel` and `tags`.

Cloud cameras can upload continuously, during events or while you watch live video, competing with calls and streams. Kilobat can’t see other devices’ traffic from your Mac, so on its own it says only that cloud cameras can use a lot of upload, with what their makers publish: Google rates a Nest camera at 0.15 to 4 Mbps and up to 300–400 GB a month recording around the clock, Ring 1 Mbps at 720p and 2 Mbps at 1080p per device (10 and 15 Mbps for 2K and 4K), Arlo 1–3 Mbps per camera depending on model and 2 Mbps per doorbell. Those are the makers’ figures, not a measurement of yours. Current router integrations do not measure internet upload per camera: UniFi and MikroTik client counters can include local traffic, OpenWrt’s nlbwmon counts traffic crossing configured local subnets rather than a verified internet interface, and FRITZ!Box TR-064 has whole-home counters only. Kilobat therefore shows the makers’ figures for camera upload, even with a router connected. It does not turn router client totals into a camera’s internet usage or a share of the home’s upload. Health mentions the cameras when your latest speed test’s ping rose 60 ms or more while it uploaded, and a call report when another device’s upload froze the call.

## Household Macs

When everyone at home uses a Mac, the Macs running Kilobat can tell each other what they move right now. A freeze your router blames on another device then names it: “caused by Anna’s MacBook downloading (Steam)” rather than “another device on your network”. It works only on a network you mark as home, and only between Macs you pair. Sharing is off until you turn it on, on each Mac.

To pair two Macs, open Settings › Household Macs on both, on your home Wi-Fi, and choose *Pair a Mac* on each. Pick the other Mac from the list on either one. Both Macs show the same six-digit code: check that they match and choose *Codes Match* on both. If they don’t match, cancel. Turn on *Share this Mac’s usage with paired Macs* on each Mac that should share, and give it a name if the computer’s own isn’t clear. *Unpair* forgets the other Mac and its key.

A paired Mac shares its name, its download and upload speed at that moment, its three busiest apps by name and whether it’s on a call. Not the sites or servers it talks to, and no history. The other Mac asks every few seconds, only during a call, while Devices or Household settings are open, or when you run `kilobat household`. Nothing goes through a server: the Macs find each other with Bonjour on your network and talk directly, with a key only the two of them have, kept in each Mac’s Keychain. Requests are signed and answers encrypted, so another device on your Wi-Fi can’t read them or replay them. macOS asks once for Local Network access; if it’s off, Settings says where to turn it on.

In Tools › Devices, paired Macs carry a Kilobat badge with their speed and busiest app. During a call, the menu mentions a paired Mac that is busy enough to freeze it. Sharing works on any Kilobat; seeing other Macs and having call reports name them is part of Kilobat Pro on the Mac that reads them. In the terminal, `kilobat household` lists the paired Macs and what each is doing, and `--json` gives the same for scripts; pairing stays in the app.

## Connect your router

Kilobat counts this Mac’s traffic itself. Connect a supported router to see its traffic counters in Tools › Devices. Routers with per-device counters show each device’s download and upload now and its recorded total today, under the names you gave it. A FRITZ!Box supplies the device list and whole-home traffic only. Kilobat signs in to the router’s own local interface and only reads. It installs nothing on the router and changes no setting. It works only on the network you mark as home, only with an address on your local network, and the password or API key stays in this Mac’s Keychain, never in a file and never synced. Choose *Connect your router* in Devices or Settings › Your router; Kilobat recognises a FRITZ!Box, UniFi, MikroTik or OpenWrt router by what it answers on your network and fills in the address.

- **FRITZ!Box** (TR-064): add a user just for Kilobat under System › FRITZ!Box Users, with the FRITZ!Box Settings right and no access from the internet. That right reads the line’s totals and the box’s uptime; with only the Voice messages right Kilobat still sees the device list and the line’s speed. TR-064 lists which devices are online but has no traffic per device, so Kilobat shows this Mac and paired Macs by name and the rest of the line as other devices. Kilobat asks the box for its HTTPS port and connects to that.
- **UniFi** (UniFi Network 9.3 or later): create an API key under Settings › Control Plane › Integrations. The official API lists the clients; each client’s traffic comes from the controller’s older statistics API, when the console permits it. If that API is unavailable, Kilobat says so and shows only the counters it can read. Client counters can include transfers within the home network, so they are device traffic rather than internet-only totals. Older consoles without Integrations sign in with a local account.
- **MikroTik** (RouterOS 7 REST API): turn on `www-ssl` with a certificate, and add a user in a group with only the *read* and *rest-api* policies. For each device’s traffic, add a profile under IP › Kid Control with no limits, or give devices simple queues of their own; otherwise you get the whole line. Queue counters can include local transfers and miss FastTracked or other traffic that bypasses queues; they are not a device’s complete internet usage.
- **OpenWrt** (LuCI’s ubus interface): sign in as root, or a user set up in `/etc/config/rpcd`. For each device’s traffic install `luci-app-nlbwmon`, which counts in steps of about 30 seconds; without it you get the whole line.
- **Any other router**: the UPnP counters it shares cover the whole home only.

A router with its own certificate shows its fingerprint the first time: compare it with the one on the router, then choose *Trust and Connect*. Kilobat trusts only that certificate from then on and says so if it changes. It reads the router every 10–15 seconds while Devices, Settings or a call is open and every few minutes otherwise (every two for a FRITZ!Box, whose counters roll over at 4 GB). Daily totals are kept separately for each home network on this Mac for 30 days. They cover the intervals Kilobat observed, so gaps while the Mac is asleep or disconnected can leave a partial day. During a call, a freeze can name the device whose counters were busiest at that time, “while Bedroom TV was busy with network traffic”. Those counters may include local transfers, so this is an observation rather than proof that the device caused the freeze. Router counter evidence comes ahead of a paired Mac’s word or a device that just joined, and router check-up counts restarts from the router’s own uptime. In the terminal, `kilobat router devices` lists every device through the app (`--json` for scripts, and `get_home_usage` for agents), `kilobat router connect` prints the steps for each router, and `kilobat router disconnect` forgets it and its password. The CLI never takes a router password. Connect your router is part of Kilobat Pro.

Firmware: where the router’s own interface says, Devices and Health mention a newer version gently, “FRITZ!OS 8.10 is available; you’re on 8.00”, with a button to the router’s own update screen. A FRITZ!Box says whether it found newer FRITZ!OS itself; UniFi Network marks a gateway as upgradable; RouterOS shows the version it found the last time someone chose Check For Updates in System › Packages (Kilobat never runs that check); OpenWrt’s own releases are compared with OpenWrt’s published list of releases, read from downloads.openwrt.org once a week, for the project’s own builds only. Kilobat never starts, downloads or installs an update. A router Kilobat can name but isn’t connected to gets a quieter note in Health when no firmware check is known for about three months, linking to the router’s guide; *I’ve checked* puts it away for another three. `kilobat router` and `kilobat router devices` show the same lines.

## Smart home: Matter, Thread and HomeKit

Tools › Devices has a Smart home line: “Thread: one network (Home) with 3 border routers · Matter: 5 devices · HomeKit: 4 accessories, 1 bridge”. *Details* lists each Thread network with its border routers (HomePod mini, Apple TV, Google Nest hubs, Echo, eero and others, by maker and Thread version), counts Matter devices (once each, even when a device is in several apps), says which are waiting to be set up, and counts HomeKit accessories and bridges. The most useful line is the one that says you have two Thread networks, often Apple’s and Google’s: devices on one can’t use the other’s border routers, so each mesh is thinner than it looks. Kilobat says how to end up with one: add new Thread devices with the app whose network you keep and share them to the others with Matter’s pairing code, or, where a border router supports Thread 1.4 credential sharing, join it to the network you keep.

The same check looks at whether your network is ready for Matter: IPv6 addresses and observed prefix advertisers (Matter needs IPv6; a missing prefix does not prove the router disabled it), Bonjour answering, peer visibility (an empty network cannot establish client isolation), smart-home devices on another subnet or VLAN, and whether your Wi-Fi is on 2.4 GHz, which most Wi-Fi smart-home devices need for setup. Each check says what to change, with your router’s guide when Kilobat knows the router, or that it can’t tell. When something is wrong with the smart-home devices on your network, Health says so in one line.

It only listens: Kilobat reads the Bonjour advertisements of `_meshcop._udp`, `_matter._tcp`, `_matterc._udp` and `_hap._tcp` for a few seconds and this Mac’s own network settings, and never sets up, pairs or controls a device. macOS asks once for Local Network access. In the terminal, `kilobat smarthome` shows the same, and `--json` gives it to scripts; agents use the MCP tool `check_smart_home`. The check is part of the Devices tab in Kilobat Pro; the Health line, the CLI and MCP are free.
