node-red-contrib-starlight 1.0.0
Node-RED nodes for Starlight camera/NVR AI alarms (C1.3 HTTP API: Digest login + Event/Check)
node-red-contrib-starlight
Węzły Node-RED do odczytu alarmów AI z kamer i rejestratorów Starlight (HTTP API C1.3).
Pakiet loguje się przez Digest + cookie/CSRF, utrzymuje sesję heartbeat i odpytuje /API/Event/Check. Nie wymaga HTTP Event Push z kamery.
Instalacja
W katalogu użytkownika Node-RED (zwykle ~/.node-red):
npm i node-red-contrib-starlight
Albo w edytorze: Menu → Manage palette → Install i wyszukaj node-red-contrib-starlight.
Wymagania: Node.js ≥ 18, Node-RED ≥ 3.
Węzły
starlight kamera
0 wejść, 1 wyjście. Podaj host, port, użytkownika i hasło kamery/NVR.
Opcje:
- ignorowanie alarmów ruchu (
motion) i dysku/SD (hdd) - zdjęcia AI (większe wiadomości)
- Ukryj pola — wybrane klucze nie trafiają do
msg.payload
Na NVR jeden węzeł zbiera wszystkie kanały. API nie podaje numeru obszaru (rule_number) — tylko typ funkcji i kanał.
starlight filtr
Przepuszcza zdarzenia według kanału, typu alarmu i rodzaju obiektu.
- Tylko start alarmu — odcina
active: false(koniec zdarzenia) - Ukryj pola — wycinane po przefiltrowaniu; matching nadal widzi pełny obiekt
Wiadomość
msg.topic — np. CH1/region_exiting
msg.payload:
| pole | znaczenie |
|---|---|
time |
czas z kamery |
channel |
CH1, IP_CH1, … |
type |
region_exiting, region_entrance, intrusion, lcd, … |
active |
true = start, false = koniec |
objectTypes |
np. Pedestrian |
category |
ai / motion / system |
source |
zwykle alarm |
Kamera nie powtarza alarmu AI co sekundę. Zwykle idzie salwa active: true na starcie i jedna wiadomość active: false na końcu.
Breaking change (0.0.2 → 1.0.0)
Wersje 0.0.x nasłuchiwały na HTTP POST (push z kamery). Od 1.0.0 pakiet sam odpytuje kamerę/NVR. Stary typ węzła rejestrator został zastąpiony przez starlight-camera i starlight-filter — flow trzeba złożyć od nowa.
Licencja
MIT