How to Find Your Thingino Camera on the LAN
You flash Thingino, the camera reboots, and then comes the quiet part: where is it? You know it grabbed an address from your router, but you don’t know which one, and typing every IP in your subnet into a browser is the kind of archaeology nobody signed up for. You could open the router’s DHCP page. You could scan the subnet. Or you could let the camera introduce itself, which it turns out is exactly what it has been doing all along.
Thingino advertises itself over mDNS, ONVIF, and MQTT, and it will speak its IP address out loud if you press the right button. Start with the mDNS name, work down to the router and the captive portal.
Your camera has a name
Before it does anything else, Thingino gives every camera a predictable hostname:
ing-<model>-<last four hex digits of the MAC>
ing-wyze-cam3-0061, ing-jooan-a6m-1280, ing-vanhua-djz-8312 — the
name combines the camera model with the last four hex digits of its network
MAC, so a fleet of identical cameras still gets distinct names.
S04hostname generates it at boot and stores it in /etc/hostname.
That name is the key to every method here.
mDNS: the name that finds itself
The camera runs a multicast DNS responder — mdnsd, not Avahi, but they
speak the same protocol — and publishes a handful of service records on
your LAN:
| Service | Port | What it points at |
|---|---|---|
_thingino._tcp |
80 | Thingino Web UI |
_http._tcp |
80 | Same web server |
_https._tcp |
443 | Web UI over TLS, when a cert is installed |
_rtsp._tcp |
554 | RTSP stream |
_rtsps._tcp |
322 | RTSP over TLS, when enabled |
S50mdnsd writes them into /etc/mdns.d/ at boot. The daemon answers on
every active interface, IPv4 and IPv6 alike, which is why a browse
sometimes shows each camera twice.
On macOS, iOS, most Linux desktops, and Windows 10 and later, that name resolves with zero configuration. Open a browser and go straight to:
http://ing-wyze-cam3-0061.local
Swap in your camera’s name and you’re at the Web UI. To see every Thingino device on the network at once, browse for the service:
# Linux (Avahi)
avahi-browse -rt _thingino._tcp
# macOS (built in, no Avahi needed)
dns-sd -B _thingino._tcp local.
avahi-browse -rt resolves each camera’s address and port, then exits.
Drop the -t for a live view while a camera reboots.
Press the reset button and listen
If you’d rather not touch a terminal, walk over to the camera. A quick press of the reset button makes it announce its own IP address through the speaker: a chime, then a spoken “IP address is 192.168.1.42.”
The button is wired through thingino-button, which watches the gpio-keys
input device and maps the reset key to timed actions:
| Hold time | Result |
|---|---|
| Quick press | Speaks the IP address |
| 5 seconds | Resets WiFi and reboots |
| 20 seconds | Factory reset |
The 5- and 20-second actions deserve respect: hold a beat too long while aiming for the IP announcement and you reset the WiFi configuration instead. A quick tap is all it takes.
Under the hood, the short press runs tell %ip. The tell script finds
the default-route interface, pulls its IPv4 address, and sends the phrase
to the Thingino TTS endpoint — https://thingino.com/say2 — which
returns an Opus clip that play pushes to the speaker. The speech is
synthesized in the cloud, so the camera needs internet access, and it needs
a speaker to say anything at all. The shipped system sounds take the other
route, generated offline at build
time. With no internet it
falls back to the configuration-portal sounds instead of the address.
ONVIF WS-Discovery
ONVIF is the surveillance-industry standard, and Thingino speaks it. The ONVIF stack includes WS-Discovery, a multicast probe/response protocol that NVRs and ONVIF-aware clients use to find cameras without knowing an address.
S96onvif_discovery starts wsd_simple_server on every active interface
and advertises the device service at:
http://<ip>/onvif/device_service
Home Assistant’s ONVIF integration, Surveillance Station, and ONVIF Device Manager all pick the camera up from there automatically. It’s a different path from mDNS and works even where multicast DNS is filtered, as long as multicast itself isn’t blocked.
Home Assistant and MQTT
If you run an MQTT broker, the optional thingino-ha package turns the
camera into a chatty MQTT citizen. On boot, ha-discovery publishes Home
Assistant auto-discovery payloads — retained topics under
homeassistant/ that describe the camera, its model, firmware version,
and a configuration_url pointing at http://<ip>. Home Assistant reads
those and creates the device with its entities, no manual YAML.
The broker can be Mosquitto running on the camera itself (Thingino ships
Mosquitto packages) or one elsewhere on the network. Either way, the
address you’re after sits in the configuration_url field of the
discovery payload, and the device appears in HA’s list with a
click-through to the Web UI.
When all else fails: the router and the portal
mDNS can be filtered by a VLAN, ONVIF and MQTT are optional extras, and some cameras have no speaker. Two methods always work:
- Router DHCP table. Every router’s admin page lists connected clients
by hostname. Look for
ing-<model>-<last4>and you have both the name and the address. The predictable hostname is what makes that row recognizable at a glance. - Configuration portal. With no usable WiFi, the camera stops trying
to be a client and becomes an access point, serving a captive portal at
http://172.16.0.1where you enter credentials. That address is fixed, so a camera in portal mode is trivially findable — the catch is it isn’t on your main LAN yet.
What you learned
- The hostname is the anchor.
ing-<model>-<last4>is predictable, unique, and shows up in mDNS, the router’s DHCP table, and MQTT discovery alike. Learn it once, find it anywhere. - mDNS does the heavy lifting.
_thingino._tcpand friends lethttp://<name>.localresolve on macOS, iOS, Linux, and modern Windows with zero setup. - The reset button is a discovery tool. A quick press speaks the IP; longer holds are WiFi reset and factory reset, so keep it short unless you mean it.
- ONVIF and MQTT are opt-in second opinions. Both hand the address to tools that already know what to do with it — an NVR, a Home Assistant install — and both survive networks where mDNS is filtered.
- The portal exists for the moment discovery can’t help. With no WiFi
there is no network to advertise on, so the camera stops trying and
serves a fixed address at
172.16.0.1instead.