Konfiguriert ein IPS Medien-Objekt anhand der Geräte-Fähigkeiten.
- 1. Funktionsumfang
- 2. Voraussetzungen
- 3. Software-Installation
- 4. Einrichten der Instanzen in IP-Symcon
- 5. Statusvariablen und Profile
- 6. WebFront
- 7. PHP-Funktionsreferenz
- 8. Aktionen
- 9. Anhang
- 10. Lizenz
- Instanz für die einfache Integration eines Media-Stream-Objektes innerhalb von Symcon.
- Stellt PTZ/SNZ (Schwenken / Neigen / Zommen) Funktionen bereit.
- PTZ Funktionen für das WebFront.
- PTZ Funktionen als PHP-Befehle und Aktionen.
- IP-Symcon ab Version 6.1
- Kameras oder Video-Encoder mit ONVIF Profil S und/oder Profil T Unterstützung.
- Geräte müssen h264 Streams bereitstellen.
(MJPEG/JPEG/h265 wird von Symcon nicht über RTSP unterstützt!) - PTZ Overlay wird offiziell nur für das WebFront unterstützt.
- Dieses Modul ist Bestandteil der ONVIF-Library.
Unter 'Instanz hinzufügen' ist das 'ONVIF Media Stream'-Modul unter dem Hersteller 'ONVIF' aufgeführt.
Es wird empfohlen diese Instanz über die dazugehörige Instanz des Configurator-Moduls von diesem Geräte anzulegen.
Name | Text | Beschreibung |
---|---|---|
VideoSource | Videoquelle | Auswahl der Videoquelle |
Profile | Stream-Profil | Auswahl des Profils |
EventTopic | Ereignisse der Videoquelle | Auswahl des Ereignis-Pfad ab welchen Ereignisse empfangen und verarbeitet werden. (*) |
(*) Durch eine Änderung des Ereignis-Pfad werden die alten Statusvariablen hinfällig und müssen manuell gelöscht werden.
Diese Funktionen sind nur verfügbar, wenn das Gerät PTZ-Eigenschaft gemeldet hat.
Es besteht die Möglichkeit PTZ Steuerelemente als Overlay im Video-Stream darzustellen.
Diese Funktion wird über eine String-Variable mit HTMLBox-Profil, für die Darstellung, und einen Webhook für die Steuerung, realisiert.
Das Video-Stream wird durch das Media-Objekt bereitgestellt und wird ebenso wie die Steuerung mit einem temporären Token abgesichert.
Name | Typ | Text |
---|---|---|
EnablePanTiltHTML | boolean | Aktiviere Schwenk/Neige |
EnableZoomHTML | boolean | Aktiviere Zoom |
PanTiltControlWidth | integer | Breite Schwenk/Neige-Element |
PanTiltControlHeight | integer | Höhe Schwenk/Neige-Element |
PanTiltControlOpacity | integer | Deckkraft Schwenk/Neige-Element |
ZoomControlWidth | integer | Breite Zoom-Element |
ZoomControlHeight | integer | Höhe Zoom-Element |
ZoomControlOpacity | integer | Deckkraft Zoom-Element |
Sind beide Steuerelemente deaktiviert, wird die Statusvariable PTZControlHtml
automatisch entfernt und der Webhook gelöscht.
Für eine Steuerung ohne Overlay, aus den Apps oder per RequestAction
können Statusvariablen aktiviert werden.
Name | Typ | Text |
---|---|---|
EnablePanTiltVariable | boolean | Aktiviere Schwenk/Neige |
EnableZoomVariable | boolean | Aktiviere Zoom |
EnableSpeedVariable | boolean | Aktiviere Geschwindigkeit |
EnableTimeVariable | boolean | Aktiviere Zeit |
Die Statusvariablen Geschwindigkeit
und Zeit
sind dabei sowohl für das Schenken/Neigen, als auch für den Zoom zuständig.
Sollte die Kamera bei verschiedenen Werten von Geschwindigkeit
sich immer gleich schnell bewegen, so wird dieser Wert von der Kamera nicht ausgewertet und ignoriert.
Es gibt keine Anhaltpunkte welche Werte hier sinnvoll sind.
Name | Typ | Text |
---|---|---|
PanDefaultSpeed | float | Geschwindigkeit Schwenk |
TiltDefaultSpeed | float | Geschwindigkeit Neige |
ZoomDefaultSpeed | float | Geschwindigkeit Zoom |
Diese Funktionen sind nur verfügbar, wenn das Gerät PTZ-Eigenschaft und Szenen gemeldet hat.
Name | Typ | Text |
---|---|---|
EnablePresetVariable | boolean | Aktiviere Szenen Variable |
EnablePresetProfile | boolean | Variablenprofil benutzt Namen der Szenen |
PresetProfile | string | Liste der Szenen |
Durch das Aktiveren der Statusvariable für Szenen, ist es möglich in dem Gerät abgespeicherte PTZ-Positionen bzw. Szenen über Symcon aufzurufen bzw. anzufahren.
Die Verfügbaren Szenen werden dabei in der Tabelle dargestellt und können mit der Auswahlbox bei Aktiv
dem Variablenprofil dieser Statusvariable hinzugefügt oder entfernt werden.
Wird EnablePresetVariable
deaktiviert, so wird auch die dazugehörige Statusvariable mitsamt Profile gelöscht.
Dieser Bereich gibt eine Übersicht über den benutzen Stream des Gerätes aus.
Nicht alle Geräte liefern hier sinnvolle Informationen; so wird z.B. Bildrate oder auch das Bitraten-Limit mit 0 angegeben.
Mit der Schlatfläche Zeige Videostream
ist eine Vorschau vom Stream in der Konsole möglich.
Dieser Bereich enthält alle PTZ Fähigkeiten welche vom Gerät gemeldet wurden.
Unterstützt das Gerät Szenen / Festpositionen, so können Diese ebenfalls angezeigt werden.
Es wird automatisch ein Media-Objekt vom Typ Stream angelegt.
Die Statusvariablen werden automatisch gemäß der Instanzkonfiguration angelegt. Das Löschen einzelner kann zu Fehlfunktionen führen.
Ident | Initial Name | Typ | Beschreibung |
---|---|---|---|
Stream | Stream | Media-Objekt | IPS-Medienobjekt Typ Stream mit der RTSP-URL. |
PTZControlHtml | PTZ-Steuerung WebFront | string | HTML-Box für Stream und PTZ-Steuerung |
PT | Bewegen | integer | Schwenk/Neige-Steuerung |
ZOOM | Zoom | integer | Zoom-Steuerung |
SPEED | Geschwindigkeit | float | Steuerung der Geschwindigkeit |
TIME | Zeit | float | Steuerung der Ansteuerdauer bei Schwenk/Neige/Zoom |
PRESET | Szene | integer | Auswahl einer Vorposition / Szene |
diverse | diverse | variable | Für jedes eintreffende Ereignis wird automatisch eine passende Variable in Symcon erstellt. |
Beispiele für Statusvariablen von Ereignisse (EventTopics
) sind in der Events-Instanz zu finden.
Es ist zu beachten das die Image-Grabber Instanz Event-Quellen auf Basis der konfigurierten Videoquelle (VideoSource
) filtert. Somit werden z.B. Signalverlust (VideoLost
) Events mit Bezug auf eine Videoquelle auch in der richtigen Instanz verarbeitet.
Name | Typ | verwendet von Statusvariablen |
---|---|---|
ONVIF.PanTilt | integer | PT |
ONVIF.Zoom | integer | ZOOM |
ONVIF.Speed | float | SPEED |
ONVIF.Time | float | TIME |
ONVIF.Preset.<InstanzID> |
integer | PRESET |
Die direkte Darstellung der Statusvariablen ist möglich; es wird aber empfohlen mit Links zu arbeiten.
Grundsätzlich können alle bedienbaren Statusvariablen per RequestAction
angesteuert werden, so das hier keine speziellen Instanz-Funktionen benutzt werden müssen.
Für die Bewegung in jede Richtung stehen entsprechende PHP-Funktionen zur Verfügung.
Dabei gibt es immer einen Befehl welcher eine Bewegung startet, mit Standard-Geschwindigkeit und ohne Zeitlimit.
Zusätzlich gibt es jeweils einen Befehl mit einem Zeitlimit, wie lange eine Bewegung ausgeführt werden soll und einen mit welcher Geschwindigkeit die Bewegung erfolgen soll.
Und einen Befehl welcher beide Parameter akzeptiert, sowohl Geschwindigkeit als auch Dauer der Bewegung.
Die Parameter Time
und Speed
werden in den Geräten verarbeitet. Es ist nicht sichergestellt, dass jedes Geräte diese Parameter unterstützt, oder welche Wertebereiche gültig sind.
ONVIF_MoveLeft(int $InstanzID)
ONVIF_MoveLeftTime(int $InstanzID, float $Time)
ONVIF_MoveLeftSpeed(int $InstanzID, float $Speed)
ONVIF_MoveLeftSpeedTime(int $InstanzID, float $Speed, float $Time)
ONVIF_MoveRight(int $InstanzID)
ONVIF_MoveRightSpeed(int $InstanzID, float $Speed)
ONVIF_MoveRightTime(int $InstanzID, float $Time)
ONVIF_MoveRightSpeedTime(int $InstanzID, float $Speed, float $Time)
ONVIF_MoveUp(int $InstanzID)
ONVIF_MoveUpSpeed(int $InstanzID, float $Speed)
ONVIF_MoveUpTime(int $InstanzID, float $Time)
ONVIF_MoveUpSpeedTime(int $InstanzID, float $Speed, float $Time)
ONVIF_MoveDown(int $InstanzID)
ONVIF_MoveDownSpeed(int $InstanzID, float $Speed)
ONVIF_MoveDownTime(int $InstanzID, float $Time)
ONVIF_MoveDownSpeedTime(int $InstanzID, float $Speed, float $Time)
ONVIF_ZoomNear(int $InstanzID)
ONVIF_ZoomNearSpeed(int $InstanzID, float $Speed)
ONVIF_ZoomNearTime(int $InstanzID, float $Time)
ONVIF_ZoomNearSpeedTime(int $InstanzID, float $Speed, float $Time)
ONVIF_ZoomFar(int $InstanzID)
ONVIF_ZoomFarSpeed(int $InstanzID, float $Speed)
ONVIF_ZoomFarTime(int $InstanzID, float $Time)
ONVIF_ZoomFarSpeedTime(int $InstanzID, float $Speed, float $Time)
Es ist jederzeit Möglich eine Bewegung zu beenden, dafür existieren drei verschiedene PHP-Befehle.
ONVIF_MoveStop(int $InstanzID)
Beendet nur die Schwenk/Neige Bewegung.
ONVIF_ZoomStop(int $InstanzID)
Beendet nur einen Zoom.
ONVIF_StopPTZ(int $InstanzID)
Beendet sowohl Zoom als auch Schwenk/Neige.
Befehle um in den Geräten abgespeicherte Szenen anzufahren.
ONVIF_GotoPreset(int $InstanzID, int $PresetIndex)
Erwartet in PresetIndex
den Index einer Szene, welche unter PTZ-Eigenschaft angezeigt wird.
Dabei ist irrrelevant ob die Szene im dem VariablenProfil ONVIF.Preset.<InstanzID>
vorhanden ist.
ONVIF_GotoPresetToken(int $InstanzID, string $PresetToken)
Erwartet in PresetToken
den Token (als String) einer Szene, welche unter PTZ-Eigenschaft angezeigt wird.
Es findet hier keine weitere Überprüfung statt, ob der Token valid ist oder nicht.
ONVIF_GotoPresetHomePosition(int $InstanzID)
Befehl zum Anfahren der Home-Position.
Grundsätzlich können alle bedienbaren Statusvariablen als Ziel einer Aktion
mit 'Auf Wert schalten' angesteuert werden, so das hier keine speziellen Aktionen benutzt werden müssen.
Dennoch gibt es diverse Aktionen für die 'ONVIF Media Stream' Instanz.
Wenn so eine Instanz als Ziel einer Aktion ausgewählt wurde, stehen folgende Aktionen zur Verfügung:
- Steuere Kamera auf Home-Position
- Steuere Kamera auf Vorposition
- Kamera nach oben/unten neigen
- Kamera nach links/rechts schwenken
- Kamera stoppen
- Kamera heran/heraus zoomen
Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:
IPS-Modul:
CC BY-NC-SA 4.0