[Modul] Reolink

Hallo,

vielen Dank für den Hinweis! Somit Fehler gefunden - hatte mich nicht getraut zu fragen :innocent:

VG
Andreas

Hallo,

besteht auch die Möglichkeit das Versenden der Emails zu aktivieren/deaktivieren?
Ich würde nämlich gerne, wenn die Alarmanlage scharf geschaltet wird, Emails erhalten wenn die Kamera Bewegung erkennt.

Natürlich, das geht bereits.
Erstelle einen Ablaufplan und verwende das SMTP-Modul

Ich möchte gerne die Email Funktion der Kamera verwenden, da man sich hier Text&Video schicken lassen kann.
Angeblich sollte das über die API-Funktion möglich sein. Habe es aber leider noch nicht geschafft …

Schau mir das mal an, API Funktionen sind bereits einige integriert, vielleicht kann ich die Mailfunktion ebenfalls integrieren…

ok … ich habe eine Möglichkeit gefunden und es funktioniert bei meiner Duo 2 Wifi - Kamera.
Einfach die richtige IP-Adresse der Kamera, Benutzername und Passwort angeben.
Danach kann mit der Variable $enable der Emailversand aktiviert und deaktiviert werden:

<?php
// === KONFIGURATION ===
$host = 'http://xxx.xxx.xxx.xxx/cgi-bin/api.cgi';   // <-- HIER die IP deiner Kamera eintragen
$user = 'Benutzername';                                   // Benutzername
$pass = 'Passwort';                           // Passwort
$enable = false;                                    // true = aktivieren, false = deaktivieren

function post_json($url, $payload) {
    $opts = ['http' => [
        'method'  => 'POST',
        'header'  => "Content-Type: application/json\r\n",
        'content' => $payload,
        'ignore_errors' => true,
        'timeout' => 10
    ]];
    return file_get_contents($url, false, stream_context_create($opts));
}

// 1) Login -> Token
$loginReq = json_encode([["cmd"=>"Login","param"=>["User"=>[
    "Version"=>"0","userName"=>$user,"password"=>$pass
]]]]);
$loginRes = json_decode(post_json($host.'?cmd=Login', $loginReq), true);
if (!isset($loginRes[0]['value']['Token']['name'])) {
    die("Login fehlgeschlagen:\n".print_r($loginRes,true));
}
$token = $loginRes[0]['value']['Token']['name'];

// 2) Fähigkeiten prüfen: V20?
$isV20 = false;
$ge20 = json_decode(post_json($host.'?cmd=GetEmailV20&token='.$token,
                   json_encode([["cmd"=>"GetEmailV20","param"=>["channel"=>0]]])), true);
if (isset($ge20[0]['code']) && $ge20[0]['code'] === 0) {
    $isV20 = true;
}

// 3) Setzen: enable (V20) ODER schedule.enable (alt)
if ($isV20) {
    $setReq = json_encode([["cmd"=>"SetEmailV20","param"=>[
        "Email"=>["enable"=>$enable ? 1 : 0]
    ]]]);
    $setRes = json_decode(post_json($host.'?cmd=SetEmailV20&token='.$token, $setReq), true);
} else {
    // Alt: SetEmail mit schedule.enable
    $setReq = json_encode([["cmd"=>"SetEmail","param"=>[
        "Email"=>["schedule"=>["enable"=>$enable ? 1 : 0]]
    ]]]);
    $setRes = json_decode(post_json($host.'?cmd=SetEmail&token='.$token, $setReq), true);
}

// 4) Ergebnis prüfen
if (!isset($setRes[0]['code']) || $setRes[0]['code'] !== 0) {
    echo "Setzen fehlgeschlagen:\n".print_r($setRes,true);
} else {
    echo "E-Mail ".($enable ? "aktiviert" : "deaktiviert")." (".($isV20?"V20":"klassisch").")\n";
    // optional: nachlesen und ausgeben
    if ($isV20) {
        $chk = json_decode(post_json($host.'?cmd=GetEmailV20&token='.$token,
                     json_encode([["cmd"=>"GetEmailV20","param"=>["channel"=>0]]])), true);
        $val = $chk[0]['value']['Email']['enable'] ?? null;
        echo "GetEmailV20 -> enable=".$val."\n";
    } else {
        $chk = json_decode(post_json($host.'?cmd=GetEmail&token='.$token,
                     json_encode([["cmd"=>"GetEmail","param"=>["channel"=>0]]])), true);
        $val = $chk[0]['value']['Email']['schedule']['enable'] ?? null;
        echo "GetEmail -> schedule.enable=".$val."\n";
    }
}

// 5) Logout
post_json($host.'?cmd=Logout&token='.$token, json_encode([["cmd"=>"Logout","param"=>new stdClass()]]));

Vielleicht kann man das ja im Modul integrieren :blush:

Ich denke das lässt sich machen.
Ich schaue mir dass dann mal an…

Es ist eine neue Beta verfügbar, bitte teste die Funktionen.

Version 2.6 (25.08.2025)

  • Neue API-Funktion ‚Mailversand‘. Die SMTP-Konfiguration ist im Kamerainterface vorzunehmen. Im Modul kann der Mailversand de/aktiviert (zb bei Abwesenheit), das Versand-Intervall eingestellt und der Mailinhalt bestimmt werden.

  • Einige Code Modifikationen

Zwecks Anpassung der Kompatibilitätsliste bitte ich noch um Feedback, welche Kameras mit dem Modul funktionieren.
Und auch die Info, ob über Webhook oder Polling.
Diese Kameras sind bereits bekannt, dass sie mit Webhook funktionieren:

  • Reolink Duo 2
  • Reolink RLC-810A
  • Reolink Doorbell
  • Reolink E1 Outdoor (nicht alle Hardware-Versionen)
  • Reolink RLC-520A
  • Reolink E1 ZOOM
  • Reolink E540

Bei mir funktioniert die Aktivierung und Deaktivierung des Email-Versandes bei der Reolink Duo 2.
Danke für die rasche Modulintegration! :+1:t2:

habe bemerkt, dass von Zeit zu Zeit die Aktivierung/Deaktivierung nicht mehr funktioniert. Behoben habe ich es indem ich die IP in der Instanz geändert und gespeichert habe. Danach wieder die richtige IP eingetragen und gespeichert. Dann hat es funktioniert bis es dann nach einiger Zeit wieder hängt.

im Log habe ich das hier gefunden:

8.08.2025, 15:37:34 | Reolink | Reolink: API-Befehl fehlgeschlagen: [{„cmd“:„GetEmailV20“,„code“:1,„error“:{„detail“:„please login first“,„rspCode“:-6}}]

Ich hatte den Fehler auch heute morgen, danach den ganzen Tag nicht mehr.
Das ganze muss was mit dem Token zu tun haben, ich habe bei den Codeanpassungen den Erneuerungstimer etwas hochgestellt, wahrscheinlich war das die Ursache.
Ich habe den Timer nun wieder zurückgestellt.
Bitte prüfen und Feedback…

jetzt bringe ich es nicht mehr zum Laufen:

Bitte nochmals updaten…

ich habe dir eine PN geschickt

Es gibt eine neue beta, wo nun die PTZ-Steuerung, das Verwalten der Presets und die Zoomfunktion integriert ist. Aktuell kann über die API aber nicht der gesamte Zoombereich der Kamera angesprochen werden.

Version 2.7 (04.09.2025)

- Neue API-Funktion ‚PTZ-Steuerung‘. Es wird ein html-Element generiert. Dies beinhaltet die PTZ-Steuerung , die Zoomfunktion und die Möglichkeit, Presets zu speichern und abzurufen.

- Konfigurationsformular angepasst, die API-Funktionen haben eine eigene Rubrik und können nun einzeln ausgewählt werden.

2 „Gefällt mir“

Hi,

habe soeben versucht eine E1 Zoom in Symcon zu integrieren und bekomme folgenden Fehler:

Fehler beim Übernehmen der Änderungen

Fatal error: Uncaught Exception: cURL-Fehler: Failed to connect to 192.168.1.60 port 80 after 2056 ms: Couldn't connect to server in C:\ProgramData\Symcon\modules\.store\reolink.symcon\REOCAM\module.php:910
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\reolink.symcon\REOCAM\module.php(116): Reolink->GetToken()
#1 C:\Windows\System32\-(3): Reolink->ApplyChanges()
#2 {main}
  thrown in C:\ProgramData\Symcon\modules\.store\reolink.symcon\REOCAM\module.php on line 910
 (Code: -32603)

Das bedeutet dass keine Verbindung zur Kamera aufgebaut werden kann. http und https aktiviert?

Verbindung zur Kamera kann aufgebaut werden und nachdem ich den Webhook richtig gestellt habe (über das Webinterface unter Survaillance - Push - For Developer - Webook), funktioniert wieder alles. Danke für den Tip per PN.

Hallo.

Ich habe das Reolink Modul installiert und wollte meine Kamera einbinden. In der Konsole bekomme ich den Stream, nur in der Visualisierung wird der Fehler, Video Server nicht verfügbar, angezeigt. Komischerweise hat es schon mal funktioniert, aber seit heute nicht mehr. Es wurde am System auch nichts verändert, lediglich hat Windows 11 ein Update eingespielt. Port 554 ist in der Firewall nicht blockiert. Port 5060 habe ich geprüft und ist noch nicht belegt. Habe mir extra eine neue Kamera gekauft, um den Stream in die Visu einzubinden. :enraged_face: Mit meiner Edimax habe ich es auch nicht geschafft, einen Stream darzustellen. :enraged_face:

Ich hoffe, ihr könnt mir helfen? :folded_hands:

Mit jedem anderen System ist es unkompliziert möglich, die Streams darzustellen, auch mit der alten Visualisierung war das kein Problem. Nur bei der neuen Kachelvisualisierung gibt es damit Probleme. :face_with_symbols_on_mouth:

VG Michael

dump (4).txt (62,8 KB)