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:

  1. 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.
  2. 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.1 where 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._tcp and friends let http://<name>.local resolve 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.1 instead.