Intrusion and Line-Crossing Alerts — Deployment Guide

AI Assistance

Need help choosing hardware, or ready to deploy?

Prefer not to manually configure devices or enter commands? Let AI Assistant size hardware based on your site setup, or run one-click script deployment once ready.

Self-service Consult & Deploy
Preset

Jetson Single Box

One Jetson Orin runs everything: the MQTT broker, the alert workbench, and the person detector (TensorRT inference, NVDEC decode). No second machine is required.

  • Camera: one H.264 RTSP camera. Test the URL in VLC first.
  • First deployment: the TensorRT engine is built on the device, which takes about five to six minutes and happens once.
1

Deploy the Security Stack

Enter the machine's address and the camera's RTSP URL; the engine is built and three containers are started.

What to check

  • The engine build ends with Engine written:. Do not interrupt it.
  • The deploy output shows mqtt_connected true and "decode": "hw".
  • On first boot the admin login is printed.
Prerequisites

📖 Engineering Reference: Siting constraints and on-site wiring guidelines are documented in the Engineering Wiki · Deployment Guide.

  • A Jetson Orin on JetPack 6.x, which ships TensorRT. The deploy step stops on any other machine.
  • The nvidia container runtime registered with Docker. If it is missing: sudo apt-get install -y nvidia-container-toolkit && sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker.
  • Ports 8090 (workbench), 1883 (broker) and 8099 (camera preview) free.
  • About 6 GB of free disk.
Troubleshooting

💡 Technical Parameters & Tuning: For Multi-stream capacity, confidence tuning, and temporal state machine, see Engineering Wiki · Measured Benchmarks.

SymptomAction
Deploy stops at "This preset is Jetson-only"The target is not a JetPack machine. Use the RK3588 preset, or a Jetson.
Deploy stops at "The nvidia container runtime is not registered"Install nvidia-container-toolkit as in the prerequisites, restart Docker, and deploy again.
Engine build failsRead the trtexec output above the failure. Out of disk is the usual cause.
Detector logs deserialize_cuda_engine returned NoneDelete models/yolov8n_fp16.orin.engine and redeploy; the engine is rebuilt.
Detector exits with a hardware-decode errorConfirm the nvidia container runtime is registered, then redeploy.
Hub does not answer on 8090docker compose logs hub. A port already in use is the usual cause.
Detector container restarts in a loopdocker compose logs detector. An unreachable RTSP URL is the usual cause; test it in VLC from the same machine.
Workbench shows no deviceWait 30 s, then check that mqtt_host in config/detector.yaml is mosquitto.
Alerts fire twice for one person standing stillCheck the camera and the network for stalls first.
Remote device
What you will be asked for(filled in the SenseCraft Solution app)
  • Device IP*

    Also written into the detector config as the preview address the workbench uses

  • SSH Username*default recomputer

    Common defaults: recomputer (Seeed reComputer J30 / J40 series), nvidia, or ubuntu.

  • SSH Password*
  • Detector Name*default site-01

    Second segment of the MQTT topic and the name shown in the workbench device list

  • Stream ID*default cam-0

    Appended to the topic so several cameras on one detector stay separable

  • Camera RTSP URL*

    H.264 only — the NVDEC path is built for H.264. Test the address in VLC first; a wrong path or wrong credentials is the most common failure.

2

Open the Alert Workbench

Log in, draw one boundary, and walk across it to see the first alert.

Troubleshooting
SymptomAction
Login rejects the passwordRun docker compose logs hub | grep -i admin to read the generated password.
Rule editor shows a grey canvas instead of a frameSet preview_advertise_host in config/detector.yaml to the machine's LAN address, not 127.0.0.1.
Alerts have no snapshot thumbnailCheck the detector log.
Nothing fires when you cross the lineOn the Devices page, confirm the detection rate is normal and the person is detected continuously.
After Deployment

The broker, the hub and the detector are running on this machine.

First login

  1. Open http://<machine>:8090.
  2. Log in as admin with the random password the deploy step printed. If the output was truncated, run docker exec <hub container> cat /data/initial-password.txt on the machine; line 2 is the password. You must change it on first login.
  3. Open Devices. The detector should be online with decode hw.

Draw your first rule

  1. Open Rules. The editor uses a live frame from the detector as its backdrop.
  2. Draw a polygon for a restricted zone, or a line for a crossing rule. A line rule can require a direction: forward, backward or any.
  3. A zone can carry a dwell time; staying longer raises a separate loitering alert.
  4. Save, then walk into the area. The alert appears in Workbench within a second, with a snapshot.

The video wall

Workbench → Video wall. Choose 1, 2, 4, 6 or 9 tiles, or Auto. Each tile shows the detection boxes plus that stream's zone and tripwire. Press F for fullscreen and Esc to exit. A tile whose device is offline or whose stream is reconnecting turns grey and shows the reason.

Tuning confidence without a restart

At the 1, 2 and 4 layouts each tile has a confidence slider. The change applies from the next frame and survives a restart. Lower is more sensitive with more false alarms; higher is more conservative. If the console says the result is unknown, reload the Devices page and read the value the detector reports.

Adding a camera from the browser

Video wall → Add camera. Pick the detector, paste the RTSP address and name it; when the button completes, the tile is live. After adding one, check the detector's CPU figure on the Devices page before adding the next. The trash icon on a tile removes a camera; its alerts are kept.

Working the alert list

Each alert can be acknowledged or marked a false positive, with undo, batch mode and CSV export. The interface is available in English and Chinese.

What it publishes

TopicContents
sensecraft/security/<device_id>/detections/<stream_id>per-frame person boxes with track ids
sensecraft/security/<device_id>/statusonline status and decoder in use
sensecraft/security/<device_id>/events/<stream_id>alert events judged by the hub

In this preset port 1883 accepts local connections only. To let another machine subscribe, change the mosquitto port mapping in the compose file from 127.0.0.1:1883:1883 to 1883:1883, add a password_file to config/mosquitto.conf, and set matching credentials in config/detector.yaml. Opening the port without a password lets any device on the network publish forged alerts.

Adding a second camera

Add it from the video wall, run another detector container on this machine with its own device_id, stream_id and preview_port, or deploy a separate board with the RK3588 preset.