FTUI Widget für SSCam Streaming Devices (SSCamSTRM)
Das SSCamSTRM Widget ist ein Widget für FHEM Tablet UI zur Integration von SSCam Streaming-Devices im FHEM Tablet UI.
Voraussetzung ist das Vorhandensein von SSCam Streaming-Devices. Streaming-Devices werden in existierenden SSCam Kamera-Devices angelegt mit:
set <SSCam-Device> createStreamDev <Typ>
Das entstandene Device ist im Attribut "data-device" des Widgets einzutragen.
Mindestlevel der Modulversionen sind SSCamSTRM 2.6.0 und SSCam 8.15.0.
Installation
Die Datei widget_sscamstrm.js muss in das js-Verzeichnis der fhem-tablet-ui Installation und die Datei sscam_hls.js in das entsprechende lib-Verzeichnis kopiert werden.
In FHEM kann der Befehl:
update all https://raw.githubusercontent.com/nasseeder1/fhem-ftui_sscamstrm_widget/master/controls_sscamstrm_widget.txt
verwendet werden um die Dateien einmalig zu installieren. Sollen die Dateien in den regelmäßigen Update-Prozess mit eingebunden werden, kann das control-File in FHEM integriert werden:
update add https://raw.githubusercontent.com/nasseeder1/fhem-ftui_sscamstrm_widget/master/controls_sscamstrm_widget.txt
Attribute
Attribut | Beschreibung | Standard-Wert | Beispiel |
---|---|---|---|
data-device | SSCam-Streamingdevice in FHEM, dessen Inhalt angezeigt werden soll | ||
data-get | Name des Readings, das eine Änderung des SSCam-Streamingdevice signalisiert | parentState | |
data-max-update | Maximale Häufigkeit in Sekunden für das Update des SSCam-Streamingdevices | 2 |
Das FTUI-Widget für SSCamSTRM kann alle zur Zeit unterstützen Streamingtypen wiedergeben. Dadurch kann nun auch das qualitativ hochwertige HLS-Format in FTUI dargestellt werden.
Hinweise
Im SSCamSTRM Widget wird anders als in anderen Widgets nicht der angegebene Wert aus dem Device dargestellt, sondern der HTML-Inhalt des angegebenen SSCam-Streamingdevices. Das data-get Reading dient nur dazu ein nötiges Update des Devices zu erkennen.
Es ist immer das Streaming-Device in FHEM zu erstellen und im Attribut "data-device" anzugeben, nicht das SSCam-Parentdevice selbst !
In dem Streamingdevice kann mittels der Attribute hideDisplayNameFTUI, ptzButtonSizeFTUI und htmlattrFTUI der Detaillink ausgeblendet, die Größe von PTZ-Buttons festgelegt bzw. die Größe des Content angepasst werden.
Für PTZ-Kameras kann das SSCamSTRM Widget mit dem Select Widget kombiniert werden um Auswahllisten für Presets und Patrols mit zu integrieren.
Beispiele
Einbinden des MJPEG-Streams
Das verwendete Streaming-Device vom Typ "mjpeg" wird vorab im zugeordneten SSCam-Device angelegt mit:
set <SSCam-Device> createStreamDev mjpeg
Das erzeugte Device, im Beispiel "SSCamSTRM.Keller.mjpeg", wird im data-device eingetragen.
<li data-row="1" data-col="1" data-sizey="3" data-sizex="4"> <header>Kamera Keller</header> <div class="cell"> <div data-type="sscamstrm" data-device="SSCamSTRM.Keller.mjpeg" ></div> </div> </li>
Einbinden der Schnappschußgalerie
Das verwendete Snapgallery-Device wird vorab im zugeordneten SSCam-Device angelegt mit:
set <SSCam-Device> createSnapGallery
Das erzeugte Device, im Beispiel "SSCamSTRM.Hauseingang.snapgallery", wird im data-device eingetragen.
<li data-row="1" data-col="1" data-sizey="3" data-sizex="5"> <header>Schnappschüsse Eingang</header> <div class="cell"> <div data-type="sscamstrm" data-device="SSCamSTRM.Hauseingang.snapgallery" ></div> </div> </li>
Steuerungspaneel für PTZ-Kameras
Es kann ebenfalls ein separates Steuerungspaneel für PTZ-Kameras erzeugt und in FTUI angezeigt werden. Dazu wird das Paneel im zugeordneten SSCam-Device angelegt mit:
set <SSCam-Device> createPTZcontrol
Bei der Einbindung in FTUI ist das Attribut data-get="state" zu ergänzen, da dieses Device das Standardreading parentState nicht enthält.
<li data-row="1" data-col="1" data-sizey="2" data-sizex="1"> <header>PTZ Control</header> <div class="cell"> <div data-type="sscamstrm" data-device="SSCamSTRM.Keller.PTZcontrol" data-get="state"></div> </div> </li>
Presets und Patrol Drop-Down-Listen bei PTZ-Kameras
Um mit PTZ-Kameras Presets anzufahren oder Patrols zu starten, kann das Select Widget mit dem SSCamSTRM Widget kombiniert werden. Im Select Widget (data-type "select") ist lediglich data-device anzupassen und auf das Internal PARENT Device des verwendeten Streamingsdevices zu setzen (hier im Beispiel "SSCam.Keller").
<li data-row="3" data-col="1" data-sizey="2" data-sizex="3"> <header>Keller</header> <div class="cell"> <div data-type="sscamstrm" data-device="SSCamSTRM.SSCam.Keller.mjpeg" ></div> </div> <div> <div data-type="label">Preset</div> <div data-type="select" data-device="SSCam.Keller" data-list="Presets" data-delimiter="," data-set="goPreset"></div> <div data-type="label">Patrol</div> <div data-type="select" data-device="SSCam.Keller" data-list="Patrols" data-delimiter="," data-set="runPatrol></div> </div> </li>
Streaming Master: Drop-Down-Liste zur Selektion eines anderen Streaming Devices
Hat man im Widget ein SSCam Streaming Device vom Typ master (Internal MODEL=master) eingebunden, kann über dieses Device der Inhalt eines anderen definierten SSCam Streaming Device ausgewählt und wiedergegeben werden.
Um die Device-Auswahl einzubinden, kann das Select Widget mit dem SSCamSTRM Widget kombiniert werden. Im Select Widget (data-type "select") ist lediglich data-device anzupassen und auf den Namen des Streaming Master Devices (im Beispiel SSCamSTRM.SDS1.master) zu setzen und data-list mit dem Wert adoptList zu spezifizieren.
<li data-row="1" data-col="1" data-sizey="3" data-sizex="3"> <header>Master-Stream SSCam</header> <div class="cell"> <div data-type="sscamstrm" data-device="SSCamSTRM.SDS1.master" ></div> </div> <div> <div data-type="label">Wähle ein Streaming Device aus:</div> <div data-type="select" data-device="SSCamSTRM.SDS1.master" data-list="adoptList" data-delimiter="," data-set="adoptFrom"></div> </div> </li>