Dann kann die bei Snapshot Bildern nur so eine geringe Auflösung.
Die Auflösung vom (echten) Stream kann davon abweichen.
Michael
Wir haben 2 C220 Kameras und eine C225.
Das Modul ist super, total einfach!!! Alle Kameras waren sofort integriert.
Die beiden C220 erzeugen aber ständig einen PullMessagesRequest Fehler
27.10.2024, 12:34:00 | ONVIF IO | Gerät ignoriert das Timeout in PullMessagesRequest!
Dies kann zu erhöhten Netzwerkverkehr, CPU-Last oder einem langsamen Symcon führen.
Sofern möglich, auf abonnieren wechseln um diesen Fehler vom Gerät zu vermeiden.
Die C225 meldet keinen, hat jemand das schon mal beobachtet?
Siehe oben:
Weitergehende Erläuterungen zu den Verschiedenen Arten der Ereignisverarbeitung sind in der Dokumentation beschrieben. → Konfigurationsseite: Ereignisse möglich
Michael
Über den Synology-Client kann ich einen Snapshot mit entsprechender Qualität erstellen. Aber das war über IPS nach meiner Erinnerung nicht ganz so einfach wie über das Onvif-Modul…
Du kannst mir ja mal bitte ein Debug zukommen lassen, dann schau ich gerne mal was die Kameras da so mitteilt.
Hierzu im Debug der IO-Instanz das Limit ausschalten und dann in der Instanz Konfiguration auf Fähigkeiten neu laden klicken.
Michael
Habe die Ereignisse auf Niemals, bisher scheint es zu gehen.
Bei Nur abonnieren verliert IPS die Verbindung. Zur Kamera finde ich keine Info ob sie das technisch unterstützt, weiß jemand etwas dazu?
Bis halt auf die Ereignisse halt
Mittendrin, oder beim Verbindungsaufbau?
Kannst du das Debug mitlaufen lassen, wenn es mittendrin passiert?
Laut der onvif DB soll sie beides können:
Quelle: Klick
Getestet wurde wohl nur die Firmware 1.0.9 Build 240321 Rel.73618n
Michael
Perfekt.
Nur leider bringt uns das nicht weiter.
Die Kamera liefert genau die gleiche URL bei jedem Profil: http://10.1.1.247/snap
Somit kann ich da leider nix machen.
Es gibt auch kein spezielles JPEG Profil im Dump, so das du hier bei den Profilen halt immer die h264 Stream Eigenschaften siehst.
Außerdem liefert sie falsche Antworten auf bestimmte Anfragen.
Du musst auch eine entsprechende Meldung angezeigt bekommen haben:
Fehler beim laden von GetProfiles. Das Gerät meldet Media2 Unterstützung, unterstützt diesen Dienst aber nicht!
Onvif Datenbak sagt: Related Products have not been individually tested.
Für mich wieder ein Gerät für die Tonne, bis der Hersteller mal seine Software auf die reihe bekommt
Michael
OK - danke für deine Zeit
Alternativ kannst du ja mal schauen ob es eine neuere Firmware für die Kamera gibt. Eventuell haben die es ja auch behoben.
Michael
Hallo Michael,
leider komme ich mit meiner neuen Instar 8401 nicht weiter und erhalte den Fehler:
dump.txt (11,8 KB)
Die Passwörter sind identisch.
Hast du eine Idee?
Viele Grüße
marvus
Onvif aktiviert?
Michael
Ja, und wenn ich „Im Browser öffnen“ wähle, funktioniert es.
Was nix mit Onvif zu tun hat. Das ist nur um von der Konsole mal eben das Webinterface der Kamera zu öffnen.
Schalten WS-Security ein.
Michael
Es geht VIELEN DANK
Ich habe eine reolink Kamera RLC1240A.
Im ONVIF Manager sehe ich folgende events
tns1:RuleEngine/CellMotionDetector/Motion
tns1:RuleEngine/MyRuleDetector/FaceDetect
tns1:RuleEngine/MyRuleDetector/PeopleDetect
tns1:RuleEngine/MyRuleDetector/VehicleDetect
tns1:RuleEngine/MyRuleDetector/DogCatDetect
Im Symcon Modul kann ich nur auf Motion reagieren, aber leider nicht auf PeopleDetect und VehicleDetect
Auch wenn ich eine ONVIF-Event Instanz anlege, kann ich diese Topics nicht ansprechen.
Siehe hier:
Oder hier:
Ist das Gerät hier vorhanden? Steht im DoC Analytics als unterstützt?
https://www.onvif.org/conformant-products/
Sonst; quasi wie immer, einmal einen Screenshot der IO Instanz mit den Gerätefähigkeiten und
einmal bitte ein Debug von IO (Limit abschalten) bei Fähigkeiten neu laden bereitstellen.
Dann kann ich zumindest mal schauen ob die Events überhaupt von der Kamera gemeldet werden.
Michael
Das jetzt Reolink ihre Firmware plötzlich streng nach ONVIF-Vorgaben programmiert würde mich erstaunen…
Reolink unterstütz aber mit der neusten Firmware Webhhooks.
Du kannst somit die Intelligente Erkennung (Tiere, Fahrzeuge, Personen) an einen Webhook senden. Erstelle also in Symcon einen Webhhook, hinterlege das unten stehendes Script und ab dann hast du diese Ereignisse der intelligenten Erkennung unterhalb des Scripts gelistet. Danach kannst du diese via Ablaufplan weiterverarbeiten, zB einen Schnappschuss erstellen etc…
<?php
// Hilfsfunktion zum Erstellen einer Variable, falls sie nicht existiert
function createVariableIfNotExists($parentID, $name, $type) {
$variableID = @IPS_GetObjectIDByIdent($name, $parentID);
if ($variableID === false) {
$variableID = IPS_CreateVariable($type);
IPS_SetName($variableID, $name);
IPS_SetIdent($variableID, $name);
IPS_SetParent($variableID, $parentID);
}
return $variableID;
}
// Hilfsfunktion zum Setzen einer Variablen basierend auf ihrem Typ
function setVariable($parentID, $key, $value) {
if (is_string($value)) {
$varID = createVariableIfNotExists($parentID, $key, 3); // String
SetValue($varID, $value);
} elseif (is_int($value)) {
$varID = createVariableIfNotExists($parentID, $key, 1); // Integer
SetValue($varID, $value);
} elseif (is_float($value)) {
$varID = createVariableIfNotExists($parentID, $key, 2); // Float
SetValue($varID, $value);
} elseif (is_bool($value)) {
$varID = createVariableIfNotExists($parentID, $key, 0); // Boolean
SetValue($varID, $value);
} elseif (is_array($value) || is_object($value)) {
$varID = createVariableIfNotExists($parentID, $key, 3); // String für JSON-String
SetValue($varID, json_encode($value));
} else {
// Unbekannter Typ, als String speichern
$varID = createVariableIfNotExists($parentID, $key, 3);
SetValue($varID, (string)$value);
}
}
// ID des aktuellen Skripts
$scriptID = $_IPS['SELF'];
// Erstellen oder Abrufen einer Kategorie unterhalb des Skripts
$categoryID = @IPS_GetObjectIDByIdent('WebhookData', $scriptID);
if ($categoryID === false) {
$categoryID = IPS_CreateCategory(); // Kategorie erstellen
IPS_SetName($categoryID, "Webhook Data");
IPS_SetIdent($categoryID, 'WebhookData');
IPS_SetParent($categoryID, $scriptID);
}
// Erfassen der rohen Daten
$rawData = file_get_contents("php://input");
if (!empty($rawData)) {
$data = json_decode($rawData, true);
if (is_array($data)) {
foreach ($data as $key => $value) {
// Wenn der Wert selbst ein Array oder Objekt ist, weiter rekursiv durchlaufen
if (is_array($value) || is_object($value)) {
foreach ($value as $subKey => $subValue) {
if ($subKey === 'alarmTime') {
// Zeitstempel in richtige Zeitzone konvertieren und speichern
$dateTime = new DateTime($subValue);
$dateTime->setTimezone(new DateTimeZone('Europe/Berlin')); // Beispiel: Zeitzone auf Europa/Berlin setzen
$formattedAlarmTime = $dateTime->format('Y-m-d H:i:s');
setVariable($categoryID, $subKey, $formattedAlarmTime);
} else {
setVariable($categoryID, $subKey, $subValue);
}
}
} else {
setVariable($categoryID, $key, $value);
}
}
// Beispielhafte Protokollierung der Daten
//IPS_LogMessage("Reolink-Carport", "Empfangene Daten: " . print_r($data, true));
}
} else {
IPS_LogMessage("WebHook RAW", "Keine rohen Daten empfangen oder roher Datenstrom ist leer.");
}
echo "Message: " . (isset($_GET['Message']) ? $_GET['Message'] : "Keine Nachricht");
Hi,
ich wollte das Modul mal wieder nutzen, wenn ich aber versuche eine Instanz einer der gefunden Kameras zu erstellen kommt immer nur:
Konnte Instanz nicht erstellen
TypeError: Cannot set properties of null (setting ‚instanceID‘)
Jemand ne Idee?
Grüße und frohes neues Jahr