reolink

reolink

Aktueller Release
1.4.2
Entwickler
Andy Grundt
Lizenz
MIT

reolink-Adapter für ioBroker

Adapter für die ioBroker-Plattform zum Abrufen von Reolink-Kamerainformationen .

Generell unterstützen alle neueren Reolink-Kameras API-Befehle. Sie unterscheiden sich lediglich in den unterstützten Befehlen.

Noch ein Hinweis zum Passwort: Testen Sie es mit und ohne URI-Kodierung, wenn Ihr Passwort nur ein Sonderzeichen enthält. Verwenden Sie für dieselbe Sicherheit besser kein Sonderzeichen und stattdessen ein längeres Passwort. Überprüfen Sie unter http://cam.ip.add.ress/api.cgi?cmd=GetDevInfo&channel=0&user=username&password=yoursecurity, ob Ihre Zugangsdaten funktionieren.

Falls Sie einen bestimmten API-Befehl einbeziehen möchten, lassen Sie es mich einfach wissen.

Implementierte Funktionen

SATZ

  • PTZ-Steuerung / PTZ-Überwachung
  • Push-Benachrichtigung
  • Autofokuswerte einstellen: 0,1
  • IR-Lichtwerte einstellen: Auto, Aus
  • LED-Lichtset
  • Werte für E-Mail-Benachrichtigungen festlegen: 0, 1
  • Audio-Alarm abspielen
  • Zoom-Fokus

Funktionen können durch Ändern von Reolink ausgelöst werden. .settings-Zustände.

ERHALTEN

  • Geräteinformationen
  • PTZ-Informationen
  • Laufwerksinformationen
  • Netzwerkinformationen
  • Bewegungserkennung
  • Autofokus
  • Schnappschuss
  • Infrarotlicht
  • LED-Licht
  • E-Mail-Benachrichtigung

Push-Benachrichtigungseinstellungen

Push-Benachrichtigungen auf ein Telefon werden nur dann bereitgestellt, wenn folgende Bedingungen erfüllt sind:

  • Der Schalter für Push-Benachrichtigungen im Adapter ist eingeschaltet.
  • Bei NVRs sind sowohl der globale Schalter als auch der Kanalschalter eingeschaltet.
  • Die Push-Benachrichtigung in der Reolink-App dieses Telefons ist aktiviert.

Die Push-Benachrichtigungen in der Reolink-App funktionieren unabhängig von den Adaptereinstellungen. Sie sind auch unabhängig von den Einstellungen anderer mit derselben Kamera verbundener Smartphones. Reolink ermöglicht Ihnen so, Push-Benachrichtigungen für jedes Smartphone einzeln zu deaktivieren. Das bedeutet, dass die Deaktivierung von Push-Benachrichtigungen über iobroker die entsprechende Option in der App nicht beeinflusst.

Beispielhafte Verwendung von „Bild abrufen“:

sendTo("reolink.0",{action: "snap"}, function(result){
    sendTo("matrix-org.0",{file:result});
});

// Der Inhalt des Ergebnisses ist JSON:

{ "type": "image/png","base64": "iVBORw....askldfj" }

Für Telegram funktioniert dies.

sendTo("reolink.0",{action: "snap"}, function(result){
    const buffer =Buffer.from(result.base64, "base64");
    sendTo('telegram.0', {
        text: buffer,
        type: "photo",
        caption: 'the image'
    });
});

Batteriebetriebene Kameras

Akkubetriebene Kameras (Argus PT, Argus 3 Pro, ...) verwenden ein proprietäres Protokoll und werden über Neolink unterstützt – ein Open-Source-Tool, das bei der ersten Verwendung automatisch heruntergeladen wird.

Schnellkonfiguration

  1. In den Einstellungen aktivieren: ✅ „Batteriebetriebene Kamera“
  2. Kamera-UID eingeben: In der Reolink-App unter „Geräteinformationen“ finden Sie diese Option.
  3. Abhängigkeit installieren (Linux):
    sudo apt install gstreamer1.0-rtsp
    
  4. Adapter starten → RTSP-Streams verfügbar unterrtsp://<server-ip>:8554/<CameraName>/mainStream

Die Server-IP wird automatisch ermittelt.<CameraName> ist der Name, der in der Adapterkonfiguration festgelegt ist.

Batteriesparmodus

Der Akku entlädt sich im Betrieb schnell! Der Adapter verwendet eine automatische Deaktivierungsstrategie:

  • streams.enable (Boolescher Wert) — RTSP-Streaming aktivieren/deaktivieren

    • Standard:false (Aus = Batteriesparmodus)
    • Automatische Deaktivierung nach 30 Sekunden (konfigurierbar)
    • Der Stream pausiert automatisch, wenn kein Client verbunden ist.
  • mqtt.enable (Boolesch) — MQTT-Integration für Bewegungs-/Batterie-/Flutlicht-/PIR-Sensoren aktivieren

    • Erforderlich für Statusaktualisierungen und Flutlicht-/PIR-Steuerung
    • Automatische Deaktivierung nach konfigurierbarem Timeout (Batterieschutz)
    • Broker in den Adaptereinstellungen konfigurieren

Akku-Kamera-Status

ZustandTypR/WBeschreibung
streams.enableboolescher WertR/WRTSP-Stream starten/stoppen
streams.mainStreamZeichenketteRRTSP-URL für Hauptstream
streams.subStreamZeichenketteRRTSP-URL für Unterstream
mqtt.enableboolescher WertR/WMQTT-Integration starten/stoppen
floodlightboolescher WertR/WFlutlicht ein/aus – Status über MQTT, Steuerung über MQTT (automatischer Start von MQTT)
pirboolescher WertR/WPIR-Sensor ein/aus – Status über MQTT, Steuerung über MQTT (automatischer Start von MQTT)
snapshotTasteWSnapshot über RTSP erfassen
query.batteryTasteWAkkuladestand über die NeoLink-Befehlszeile abfragen
query.previewTasteWSnapshot über RTSP erfassen
ptz.presetNummerR/WKamera auf gespeicherte Voreinstellungsposition bewegen (0–9)
ptz.up/down/left/rightboolescher WertR/WZum Bewegen gedrückt halten (true =Start,false =Stopp)
ptz.speedNummerR/WPTZ-Bewegungsgeschwindigkeit (1–100, Standardwert 32)
status.motionboolescher WertRBewegung erkannt (via MQTT)
status.battery_levelNummerRAkkustand in % (über Neolink CLI, periodisch)

|snapshotImage | Zeichenkette | R | Letztes Snapshot-Bild (base64, Daten-URI) | |snapshotStatus | Zeichenkette | R | Snapshot-Status:idle /capturing /success /error | |info.neolink_status | Zeichenkette | R | Neolink-Prozessstatus:stopped /running |

PTZ-Steuerung

PTZ funktioniert über die Neolink-Befehlszeilenschnittstelle – MQTT ist nicht erforderlich.

Richtungsbewegung (ptz.up/down/left/right ):

  • Auf einstellentrue → Die Kamera beginnt sich zu bewegen und stoppt automatisch nach 5 Sekunden.
  • Auf einstellenfalse → Die Kamera stoppt sofort
  • In VIS: Konfigurieren Sie eine Schaltfläche mitmousedown=true /mouseup=false zum Halten-zum-Bewegen
  • Geschwindigkeit anpassen mitptz.speed (1–100)

Voreinstellungen (ptz.preset ): Stellen Sie eine voreingestellte Zahl (0–9) ein, um zu dieser gespeicherten Position zu springen.

Merkmale

✅ RTSP-Streams (Haupt- + Nebenkanal)
✅ Momentaufnahmeaufnahme (erfordert ffmpeg)
✅ Flutlichtsteuerung (Status + Steuerung über MQTT)
✅ PIR-Sensorsteuerung (Status + Steuerung via MQTT)
✅ Bewegungserkennung (via MQTT)
✅ Akkustand (regelmäßig über die Neolink-Befehlszeilenschnittstelle)
✅ Vorschaubild (automatische Aktualisierung via MQTT)
✅ PTZ-Steuerung – Richtungsbewegung + Voreinstellungen (über Neolink CLI)
✅ Multiplattform – Neolink-Binärdatei wird automatisch heruntergeladen (Linux x64/ARM/ARM64, macOS)

MQTT-Einrichtung

In den Adaptereinstellungen konfigurieren:

  • Broker-Host (Standard:127.0.0.1 )
  • Broker-Port (Standard:1883 )
  • Benutzername / Passwort (optional)
  • Automatische Deaktivierung des Timeouts (Standard:30 s, Batterieschutz)

MQTT wird für Kamerastatusaktualisierungen und -steuerung verwendet. Der Adapter abonniert automatisch, wennmqtt.enable ist eingestellt auftrue Die

Statusthemen (von der Kamera über Neolink veröffentlicht):

  • neolink/<camera>/status/motion
  • neolink/<camera>/status/battery_level
  • neolink/<camera>/status/floodlight
  • neolink/<camera>/status/pir
  • neolink/<camera>/status/preview

Steuerungsthemen (vom Adapter an die Kamera gesendet):

  • neolink/<camera>/control/floodlight
  • neolink/<camera>/control/pir

Fehlerbehebung

ProblemLösung
"Kamera-UID erforderlich"UID aus der Reolink-App eingeben → Geräteinformationen
"libgstrspserver nicht gefunden"sudo apt install gstreamer1.0-rtsp
Stream kann keine Verbindung herstellenAktivierenstreams.enable Warten Sie ca. 5 Sekunden, bis Neolink startet.
Snapshot schlägt fehlInstallieren Sie ffmpeg:sudo apt install ffmpeg
Flutlicht/PIR reagiert nichtMQTT startet automatisch – warten Sie nach dem Umschalten etwa 3 Sekunden.
MQTTNotAuthorizedBroker-Zugangsdaten prüfen; Neolink verwendetcredentials = ["user", "pass"] Format
Der Akku entlädt sich schnellStreaming deaktivieren, wenn nicht verwendet; MQTT nur für Bewegungserkennung verwenden
PTZ reagiert nichtJeder PTZ-Befehl benötigt ca. 2 Sekunden (P2P-Kameraanmeldung) – das ist normal.

Bekannte funktionierende Kameras

HTTP-API (Standard)

RLC-420-5MP, E1 Zoom, RLC-522, RLC-810A, RLC-823A, Duo 3 PoE

Akku-Kameras (über Neolink)

Reolink Argus PT, Reolink Argus 3 Pro


Changelog

1.4.2 (2026-03-16)

  • (oelison) fast fix for issue #230

1.4.1 (2026-03-15)

  • (oelison) fix issue #187

1.4.0 (2026-03-13)

  • (bloop16) Battery camera support via neolink
  • (oelison) Adapter requires node.js >= 20 now.

1.3.0 (2025-12-20)

  • (agross) AiCfg config
  • (oelison) bump some libs #202
  • (bluefox) migration to ts
  • (bot) revoking classic token #204
  • (oelison) state changes from info log to debug #206

1.2.3 (2025-06-30)

  • (oelison) settings email notification #170
  • (oelison) testing node.js 24 #172

1.2.2 (2025-05-01)

  • (oelison) update readme #141 #155
  • (oelison) supress errors with axios timeout #154

1.2.1 (2025-02-09)

  • (oelison) set some errors to debug logs

1.2.0 (2025-02-07)

  • (oelison) update disk info
  • (oelison) uri enconding is switchable (helps sometimes by one special char)
  • (oelison) #28 PTZ check added

1.1.2 (2024-09-14)

  • (oelison) #22 password with some more special chars works now
  • (oelison) adapter warnings resolved

1.1.1 (2024-08-03)

  • (oelison) removed warnings from adapter check
  • (olli) added ftp support
  • (oelison) channel now distinguishing most requests
  • (oelison) #79 error messages with more info where

1.1.0 (2024-05-16)

  • (Nibbels) #56 added function to switch scheduled recording on and off
  • (Nibbels) #25 detach led light from led light mode
  • (Nibbels) added setWhiteLedMode function
  • (Nibbels) read zoom and focus with POST request (works on RLC-823A v3.1)
  • (oelison) removed node 16

1.0.3 (2024-01-21)

1.0.2 (2023-12-19)

  • (oelison) known working cameras added
  • (oelison) setIrLights accept "On" now
  • (oelison) #40
  • (oelison) #42

1.0.1 (2023-11-11)

  • (oelison) resolve review for latest adapter addition
  • (oelison) maybe the last node 16 version
  • (oelison) booleans are now false/true and not 0/1

License

MIT License

Copyright (c) 2026 Andy Grundt andygrundt@gmail.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.