FTUI Widget für SSCam Streaming Devices (SSCamSTRM)

Aus FHEMWiki

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="adopt"></div>
  </div>
</li>