Diese Library wurde nicht dazu entwickelt komplett den Profil S Spezifikationen zu entsprechen oder deren gesamten Funktionsumfang abzubilden.
Vielmehr liegt der Schwerpunkt auf eine einfache und unkomplizierte Integration bestimmter Bestandteile (LiveStream, Steuerung) und Funktionen (Events, Digital Ein-/Ausgänge) in Symcon.
Dadurch ist es teilweise auch möglich Geräte in Symcon einzubinden welche ihrerseits die Spezifikationen nicht vollständig oder nicht korrekt umsetzen. Um zu überprüfen ob ein Gerät den ONVIF Standard unterstützt, kann die offizielle Datenbank hier befragt werden: Conformant Products - ONVIF
Vorbemerkungen zur Integration von Geräten
Es werden Instanzen zum auffinden (Discovery) und einrichten (Konfigurator) von Geräten in Symcon bereitgestellt.
Diese Instanzen werden nur korrekt funktionieren, wenn die betreffenden Geräte entsprechend Konfiguriert wurden.
So gibt es Geräte bei welchen am Werk z.B. das ONVIF Protokoll deaktiviert ist.
Oder eine entsprechende Zugangsberechtigung erstellt oder erweitert werden muss.
Eine Konfiguration der Geräte über Symcon ist in dieser Library nicht vorgesehen.
Unerlässlich ist eine korrekte Uhrzeit auf den Geräten, da eine Authentifizierung sonst fehlschlägt.
Es wird dringend empfohlen vor der Integration in IPS folgende Parameter in den Geräten fertig zu konfigurieren und ggfls. zu testen:
Netzwerk-Schnittstelle (IP-Adresse)
Auffindbarkeit / Discovery über ONVIF aktivieren
Zugangsdaten (u.U. eigene für ONVIF)
Die Zugangsdaten sollten bei allen Geräten identisch sein.
Zeitsynchronisation
Nach Möglichkeit sollten die Geräte und der Symcon Host die Uhrzeit aus der gleichen Quelle beziehen (NTP-Server).
PTZ-Vorpositionen / Szenen (sofern vorhanden)
h26x-Profile bzw. Media-Profile für ONVIF
Hinweise zum Symcon-System / Host
Die Maximale Anzahl der gleichzeitig verwendbaren RTSP-Streams hängt von der Symcon Lizenz ab. Bitte hierzu die Funktionsübersicht der Editionen beachten.
Um Ereignisse der Geräte in Symcon zu verarbeiten wird ein Webhook pro IO-Modul erzeugt.
Hier wird beim anlegen der Instanz automatisch nur der interne WebServer von Symcon auf Port 3777 eingetragen. Die IP-Adresse auf welchem Symcon die Daten empfängt wird automatisch ermittelt.
Bei System mit aktiven NAT-Support funktioniert die automatische Erkennung der eigenen IP-Adresse nicht. Hier wird automatisch die NATPublicIP aus den Symcon-Spezialschaltern benutzt. Auch bei Systemen mit aktiven NAT-Support wird extern automatisch nur der Port 3777 beim anlegen von IO-Instanzen unterstützt.
Sollte es nötig sein, so können bei Bedarf die eigene IP und der Port, sowie die Verwendung von https, in den IO-Instanzen unter Experteneinstellungen geändert und fixiert werden.
Damit Geräte über das Discovery-Modul gefunden werden können, müssen bei in gerouteten Netzen und bei NAT Systemen Multicast-Pakete korrekt weitergeleitet werden. Discovery funktioniert nicht in einem Docker Container welcher per NAT angebunden ist. Diese Konstellation wird aufgrund der fehlenden Multicast Fähigkeiten von Docker nicht unterstützt.
Für das Discovery werden Pakete über die Multicast-Adresse 239.255.255.250 auf Port 3702 gesendet und auf UDP Port 3703 empfangen.
Folgende Module beinhaltet die ONVIF Library
ONVIF Discovery (Dokumentation) Erkennt ONVIF kompatible Geräte innerhalb des lokalen LAN.
ONVIF Configurator (Dokumentation) Unterstützt beim Einrichten der verschiedenen Instanzen für ein ONVIF-Gerät.
ONVIF IO (Dokumentation) Stellt die Verbindung zu einem ONVIF-Gerät her.
ONVIF Media Stream (Dokumentation) Konfiguriert ein IPS Medien-Objekt (RTSP-Stream) anhand der Geräte-Fähigkeiten.
ONVIF Image Grabber (Dokumentation) Lädt Snapshots (Standbilder) von dem Gerät und legt es in einem Media-Objekt ab.
ONVIF Digital Input (Dokumentation) Bildet die Digitalen Eingänge in Symcon ab.
ONVIF Digital Output (Dokumentation) Bildet Digitale Ausgänge (Relays) in Symcon ab.
ONVIF Events (Dokumentation) Bildet empfangbare ONVIF-Ereignisse in Symcon ab.
Changelog
Version 1.20:
Fehlermeldung in der Discovery Instanz bei ungültiger Anmeldung wird durch bestätigen mit ‚Ignorieren‘ nicht mehr angezeigt, bis die Anmeldedaten geändert wurden.
Es wird eine Meldung angezeigt, wenn die Discovery Instanz nicht funktioniert (Docker + NAT).
Experteneinstellungen in den IO-Instanzen ermöglichen das umstellen auf http/https und ändern der IP und Port vom Ereignis-Hook.
Aktion für Digital Output war defekt.
Version 1.10:
Beta Release für Symcon 6.0
Aktionen für Kamerasteuerung, Snapshot des Image Grabber und für Ansteuerung der Ausgänge.
Version 1.08:
Fehlermeldungen vom Image Grabber, wenn IO nicht verbunden war.
Version 1.07:
Die Ansteuerung der PTZ-Kommandos kann invertiert werden.
Eventuelle Fehlermeldung wenn die Option Variablenprofil benutzt Namen der Szenen aktiviert war.
Version 1.06:
Eventuell wurden die Topics eines Events falsch ermittelt.
Statusvariablen für Topics mit Sonderzeichen wurden nicht korrekt angelegt.
Version 1.05:
Fehlermeldung wenn Geräte keinen Namen für PTZ-Szenen geliefert haben.
Fehlermeldung im IO wenn Geräte keine Auflösung, kein Encoding oder keine Bitrate gemeldet haben.
Version 1.02:
ONVIF_StopPTZ und das Anhalten beim loslassen der PTZ-Overlay Steuerung hat bei einigen Geräten nicht funktioniert
Profile ONVIF.Time und ONVIF.Speed waren bei der Beschreibung vertauscht
Fehlende Übersetzungen ergänzt
Version 1.01:
Release für Symcon 5.5
Fehlende Übersetzungen ergänzt
Version 1.00:
Beta Release für Symcon 5.5
Spenden
Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:
habe nochmal versucht ONVIF Kameras über die Instanzenkonfiguration einzubeinden
es kommt jedoch nachfolgende Fehlermeldung.
Nachtrag:
Ist in der Discovery beim anlagen der Instanz ID
Abort Processing during Fatal-Error: strpos(): Non-string needles will be interpreted as strings in the future.
Use an explicit chr() call to preserve the current behavior
Error in Script C:\ProgramData\Symcon\modules\.store\de.nall.chan.onvif\ONVIF IO\module.php on Line 287 (Code: -32603)
Sorry, Bahnhof.
Es gibt keine ONVIF Kamera Instanz.
Ah, also wenn du in der Discovery Instanz ein ONVIF Konfigurator für ein Gerät erzeugst, kommt der Fehler?
Sende mir bitte einmal den Debug der Discovery Instanz.
Und bitte den IO manuell für dieses Gerät anlegen und mir den Debug vom übernehmen der Einstellung ebenfalls zusenden.
Michael
super Idee Dein ONVIF-Modul, habe mich mal zu Beta-Tester gemacht.
Das Modul habe ich zum Laufen bekommen, allerdings komme ich mit den Events nicht zurecht, da fehlt mir ein kleines Beispiel wie ich an die Bewegungmeldung der Kamera komme.
Die Meldung an sich scheint zu funktionieren, sowohl die Hersteller-Anwendung als auch der ONVIF-Manager bekommen diese angezeigt.
Beispiele sind schwer, da jeder Hersteller die Events anders benennt.
Du kannst aus der Drop-Down Liste in der Instanz auswählen was du haben willst, bzw. ab welcher Ebene.
Sofern es dann eintritt, wird eine Variable automatisch erzeugt.
Michael
Zeig mal bitte die IO Instanz, wenn die Verbindung neu aufgebaut wurde.
Da stehen dann z.b. ein Hook und die Subscribtion.
Der Debug der Instanz vom Verbindungsaufbau und dann 1 Minuten beim Verbindung verloren hätte ich auch gerne.
Vermutlich wird dort etwas nicht korrekt erkannt im Modul.
Michael
Diese Fehlermeldung fange ich jetzt ab, allerdings wird das wohl nicht die Lösung sein.
Bitte updaten und bitte Feedback geben ob jetzt eine sinnvolle (Fehler)-Meldung im IO und IPS-Logfile/Meldungsfenster kommt.
Auf dein folgenden Screenshot sieht man, dass der Ereignis-Hook defekt war.
Eventuell war das die Ursache für den Fehler oben.
Bitte einmal updaten und Feedback geben
Irgendwie schafft er da nicht zu ermitteln wie der die ConsumerAddress für den Webhook ist.
Bitte mal ganz stumpf eine falsche IP-Adresse im IO eintragen und übernehmen.
Wenn der IO dann in Fehler geht, das Debug öffnen, die IP wieder zurück ändern und übernehmen.
Eventuell wird dann die Adresse vom Webhook mal mit IP erstellt :rolleyes:
Das Debug dann bitte noch mal hochladen.
Oh Mann… Was bin ich blind.
Im Debug steht das du NAT aktiv hast.
Dann musst du die externe IP vom Host unter dem dein Container läuft unten im IO eintragen.
Das bessere ich aus, damit dort dann eine Meldung kommt, wenn das Feld leer ist.
Michael
Problem sitzt wie immer vor dem Bildschirm, ich hatte den Schalter NAT aktiviert (irgendwas testen ) aber nicht zurück gedreht.
Jetzt habe ich mein Event:cool:
Vielen Dank für Deine Hilfe.
Das RenewSubscription bleibt allerdings.
23.03.2020, 21:39:45 | TimerPool | ONVIF IO Kamera1 (RenewSubscription): <br />
<b>Warning</b>: <br />
<b>Warning</b>: Error Fetching http headers in <b>/var/lib/symcon/modules/.store/de.nall.chan.onvif/ONVIF IO/module.php</b> on line <b>438</b><br />
in <b>/-</b> on line <b>1</b><br />
Allerdings komme ich da heute nicht mehr weiter.
Ich vermute irgendwas hält sich wieder nicht an den Standard.
Ich muss da morgen noch mal die Specs wälzen. Keine Ahnung ob ich wieder etwas falsch verstanden habe (allerdings funktionieren meine Geräte) oder deine Kamera ’ IPC ’ sich nicht an die Specs hält.
Mit dem ONVIF Device Manager habe ich folgende Informationen zu den Kameras (die Haben sich wohl vermehrt) erhalten:
Gekauft hab ich von Rolink RLC-520 PoE und RLC-410W
ONVIF Version: ist bei Beiden 2.01
Habe alles noch einmal überprüft.
Das Problem scheint aber an deinen Kameras zu liegen.
Es wird die Adresse ‚http://192.168.xxx.yyy:8000/onvif/Notification?Idx=00_1‘ als SubscriptionReference übermittelt.
Auf diese kann das Modul sich aber nicht verbinden (Error Fetching http headers).
In der Betaphase vom Modul hatte das auch schon @HarmonyFan mit den Kameras.
Da wurde sogar eine falsche IP gesendet.
Das hat Reolink aber inzwischen wohl behoben.
Eventuell haben die jetzt einen neuen Fehler eingebaut, oder ihn noch immer nicht behoben.