FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: luvat am 30 Juni 2016, 18:51:54

Titel: Enigma2 Integration
Beitrag von: luvat am 30 Juni 2016, 18:51:54
Hallo,

ich möchte gerne meine Dreambox integrieren. .. Soweit ist ja alles easy ... was ich nicht hinbekomme ist, dass ich die Senderliste in einem select (einer Combobox) anzeigen lasse und bei Auswahl eines anderen Senders der Sender entsprechend wechselt.

Hat das schon wer hinbekommen? Für ein Snippet wäre ich super dankbar.

Beste Grüße
Titel: Antw:Enigma2 Integration
Beitrag von: setstate am 30 Juni 2016, 20:39:33
Das Enigma2 Modul kennt zwar die Channels, bietet aber keine Liste direkt an, deshalb habe ich mir mit einem UserReading helfen müssen

setreading SatReceiver channels Das_Erste_HD:ZDF_HD:RTL_HD:SAT.1_HD:ProSieben_HD:VOX_HD:kabel_eins_HD:RTLII_HD:TLC_HD:SIXX_HD:SUPER_RTL_HD:RTLNITRO_HD:Pro7_MAXX_HD:SAT.1_Gold_HD:DMAX_HD:TELE_5_HD:Disney_Channel_HD:NICKELODEON_HD:EinsPlus_HD:Einsfestival_HD:zdf_neo_HD:3sat_HD:zdf.kultur_HD:arte_HD:MDR_Sachsen_HD:WDR_HD_Dortmund:BR_Fernsehen_Nord_HD:rbb_Berlin_HD:SWR_BW_HD:n-tv_HD:N24_HD:ZDFinfo_HD:tagesschau24_HD:KiKA_HD:PHOENIX_HD:Deluxe_Music_HD:MTV_HD:ANIXE_HD:RiC:ServusTV_HD_Deutschland:Comedy_Central/VIVA:SPORT1:pearl.tv_HD_Shop:TecTime_TV

In der TabletUI kann man diese dann so einbinden

<div data-type="select" data-device="SatReceiver" data-list="channels" data-get="channel" data-set="channel"></div>


Die List kann man dem Enigma2 Modul aber per Trick entlocken. Einfach einen Channel anwählen wollen, den es nicht gibt. Dann gibt es eine Fehlermeldung mit allen "richtigen" Sendern.

set SatReceiver channel gibmirdielisteraus

Man muss dann nur noch für das Select-Widget die Kommas durch ein Doppelpunkt ersetzen.
Titel: Antw:Enigma2 Integration
Beitrag von: luvat am 30 Juni 2016, 21:11:56
Klasse. Vielen Dank!
Funktioniert perfekt.
Ich schulde dir ein Bier :)
Titel: Antw:Enigma2 Integration
Beitrag von: setstate am 30 Juni 2016, 21:46:13
Super! Vielen Dank!  ;D

Ich habe gleich noch bissel rumgespielt und meine Musik-Player Steuerung als Vorlage hergenommen und etwas Neues zur SatReciever-Steuerung darauf aufgebaut.
Kann man noch schicker machen, hier nur mal der erste Wurf


<!DOCTYPE html>
<html>
<head>
    <!--
     /* FHEM tablet ui */
     /*
     * UI builder framework for FHEM
     *
     * Version: 2.2.0
     * URL: https://github.com/knowthelist/fhem-tablet-ui
     *
     * Copyright (c) 2015-2016 Mario Stephan <mstephan@shared-files.de>
     * Under MIT License (http://www.opensource.org/licenses/mit-license.php)
     *
     * !!!! Evaluation version - run only in a staging enviroment !!!!
     *
     * - create a new folder named 'tablet_eval' in /<fhem-path>/www
     * - copy all files incl. sub folders into /<fhem-path>/www/tablet_eval
     * - add 'define TABLETUIEVAL HTTPSRV ftui_eval ./www/tablet_eval Tablet-EVAL' in fhem.cfg
     * - Tadaaa! A new fhem ui in http://<fhem-url>:8083/fhem/tablet_eval/
     */
    -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <meta name="widget_base_width" content="74">
    <meta name="widget_base_height" content="71">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="gridster_disable" content="1">
    <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
    <meta name="debug" content="0"> <!-- verbose level 1-6 = output to console;0 = not output -->
    <meta http-equiv="Cache-Control" content="no-store" />

    <link rel="stylesheet" href="lib/jquery.gridster.min.css" />
    <link rel="stylesheet" href="css/fhem-tablet-ui.css" />
    <link rel="stylesheet" href="lib/font-awesome.min.css" />
    <link rel="stylesheet" href="lib/jquery.toast.min.css" />

    <!-- define your personal style here, it wont be overwritten  -->
    <!-- link rel="stylesheet" href="css/fhem-green-ui.css" / -->
    <!-- link rel="stylesheet" href="css/fhem-tablet-ui-user.css" / -->

    <script src="../pgm2/jquery.min.js"></script>
    <script src="lib/jquery.toast.min.js"></script>
    <script src="lib/jquery.gridster.min.js"></script>
    <script src="js/fhem-tablet-ui.js" defer></script>

    <title>FHEM-Tablet-UI</title>
</head>

<body>
    <div class="gridster">
      <ul>
        <li data-row="1" data-col="2" data-sizex="5" data-sizey="6">
             <header>SATRECEIVER</header>
                 <div data-type="image"
                          data-url="http://vusolo2.local/grab?format=jpg"
                          data-size='350'
                          data-refresh="30"
                          class="row top-space nocache">
                 </div>
                 <div class="row top-space">
                     <div data-type="label" data-device="SatReceiver" data-get="eventstart_hr" data-substitution="s/(:00)$//g" class="inline middle"></div>
                     <div data-type="level" data-device="SatReceiver" data-get="eventcurrenttime" data-min="eventstart" data-max="eventstart_next" data-width="240"   class="horizontal inline middle"></div>
                     <div data-type="label" data-device="SatReceiver" data-get="eventstart_next_hr" data-substitution="s/(:00)$//g" class="inline middle"></div>
                 </div>
                 <div class="row large thin top-space">
                     <div data-type="label" data-device="SatReceiver" data-get="currentTitle" class="bold"></div>
                     <div data-type="label" data-device="SatReceiver" data-get="channel" class=""></div>
                 </div>
                 <div class="row top-space">
                     <div data-type="switch" data-device="SatReceiver" data-get="power" data-set="power"
                          data-icon="fa-power-off" data-background-icon="-"
                          data-on-color="white" data-off-color="gray"
                          data-on-background-color="white" data-off-background-color="gray"
                          class="col-1-5">
                     </div>
                     <div data-type="push" data-device="SatReceiver"
                           data-icon="fa-step-backward" data-background-icon="-"
                           data-off-color="#fff" data-on-color="#aa6900"
                           data-set-on="channelDown" class="col-1-5 big">
                     </div>
                     <div data-type="switch"
                             data-device="SatReceiver"
                             data-states='["on","on","on"]'
                             data-set-states='["pause","play","play"]'
                             data-background-icon="fa-circle-thin"
                             data-background-colors='["white","white","white"]'
                             data-colors='["white","white","white"]'
                             data-icons='["fa-pause","fa-play","fa-play"]'
                             class="col-1-5 big">
                     </div>
                     <div data-type="push" data-device="SatReceiver"
                           data-icon="fa-step-forward" data-background-icon="-"
                           data-off-color="#fff" data-on-color="#aa6900"
                           data-set-on="channelUp" class="col-1-5 big">
                     </div>
                     <div data-type="switch" data-device="SatReceiver" data-get="mute" data-set="mute"
                           data-icon="fa-volume-off" data-background-icon="-"
                           data-on-color="white" data-off-color="gray"
                           class="col-1-5">
                     </div>
               </div>
        </li>
        <li data-row="1" data-col="2" data-sizex="6" data-sizey="6">
             <header>CHANNELS</header>
             <div data-type="select" data-device="SatReceiver" data-list="channels" data-get="channel" data-set="channel" class=""></div>
             <div data-type="label" data-device="SatReceiver" data-get="eventdescription" class="large top-space-3x"></div>
             <div class="container padding margin">
                <div class="container round bg-gray  padding margin">
                    <div data-type="label" data-device="SatReceiver" data-get="eventdescriptionextended" class="container round bg-gray  padding margin"></div>
                </div>
            </div>
        </li>
      </ul>
    </div>
</body>
</html>

Titel: Antw:Enigma2 Integration
Beitrag von: luvat am 30 Juni 2016, 21:56:39
 ;D
sieht nice aus.
Titel: Antw:Enigma2 Integration
Beitrag von: choetzu am 31 August 2016, 00:37:32

Super Umsetzung, danke. Hab ich auch so gemacht, klappt bestens.

Ich habe folgenden Code aber rausgenommen, da es mich immer nach dem PW fragt.
         <div data-type="image"
                          data-url="http://meineIP/grab?format=jpg"
                          data-size='350'
                          data-refresh="30"
                          class="row top-space nocache">
                 </div>


Wie kann ich mein Login und PW in die data-url einbinden? geht das überhaupt? Ich würde dann gerne das Bild darstellen...
Titel: Antw:Enigma2 Integration
Beitrag von: setstate am 31 August 2016, 07:05:48
Ich würde es ersteinmal mit dem Standard Format versuchen

http://username:password@example.com/...
Titel: Antw:Enigma2 Integration
Beitrag von: choetzu am 02 September 2016, 21:57:59
danke setstate und sorry, dass ich erneut mit einer Frage aufkomme:

Meine Channelliste ist im FHEM durch Kommas getrennt. Es wird im Auswahlmenu nun als 1 Sender dargestellt und nicht als eine Liste.. Siehe Bild.

Kann man dies irgendwie ändern.. im Wiki habe ich nix dazu gefunden.

Titel: Antw:Enigma2 Integration
Beitrag von: setstate am 02 September 2016, 23:06:18
Deshalb habe ich ein userreading mit der gleichen Liste, nur mit : getrennt, angelegt.

Aber etwas einfachen wäre es, wenn auch ohne extra-Readings ginge. Also habe ich jetzt das Select Widget um den Parameter "data-delimiter" erweitert.

<div data-type="select" data-device="SatReceiver" data-delimiter="," data-list="channelList" data-get="channel" data-set="channel" class=""></div>
Titel: Antw:Enigma2 Integration
Beitrag von: choetzu am 02 September 2016, 23:15:48
Super!!!! Herzlichen Dank.  Habs ausprobiert und funzt 1A!! Sackstark.. Danke
Titel: Antw:Enigma2 Integration
Beitrag von: axs77 am 07 Januar 2017, 14:59:24
Hi.

Dem sackstark schließe ich mich an ;-)
Leider ist der Screenshot ein bischen zu groß. Wie bekomme ich den denn in der Höhe skaliert?

Grüße.


Titel: Antw:Enigma2 Integration
Beitrag von: setstate am 07 Januar 2017, 16:52:11
data-height und data-width
Titel: Antw:Enigma2 Integration
Beitrag von: axs77 am 07 Januar 2017, 18:01:06
Ok. Danke dir.
Leider wird an die "grab" URL  zum Schluß immer ein "_=1483807883881" angehängt; die Zahl variiert dabei. Und so wird das Bild nicht angezeigt. Nehme ich das Anhängsel weg öffnet sich ein einwandfreier Screenshot.
Habe eine DM525. Aber das müsste bei enigma2 doch eigentlich egal sein oder?

EDIT: Ein einfaches data-url="http://192.168.13.43/grab" hat schon gereicht.

Vielen Dank nochmal !


EDIT2: Schade. Das war es doch nicht. Wird immer noch die Zahl angehangen...
Titel: Antw:Enigma2 Integration
Beitrag von: axs77 am 11 Januar 2017, 09:01:53
Ich benötige nochmal Hilfe. Es will ums verrecken kein Bild erscheinen.
Nachdem ich nun alle möglichen Kombinationen im Grab link ausprobiert habe muß ich die Segel streichen.

So sieht derzeit meine Konfiguration aus:

   <div data-type="image"
                          data-url="http://192.168.13.43/grab?format=jpg"
                          data-size="384"
  data-height="216"
  data-refresh="30"
                          class="row top-space nocache">
                 </div>


Aber es  erscheint kein Bild. Öffne ich das Bild in einem neuen Tab erscheint die Linkadresse "http://192.168.13.43/grab?format=jpg&_=1484121568785". Nehme ich das hinten angehängte "&_=1484121568785" weg, erscheint ein einwandfreier Screenshot.
Nehme ich das nocache aus der class, dann erscheint zwar einmalig ein Bild, wird aber nicht aktualisiert.
Hat da jemand eine Idee zu?

Grüße.
Titel: Antw:Enigma2 Integration
Beitrag von: setstate am 11 Januar 2017, 09:33:25
Mit nocache wird hinten der Zeitstempel (&_=1484121568785") angehangen, damit immer vom Server geholt wird und nicht aus dem Cache.

Wenn die URL mit &_=123456789 hinten bei dir nicht funktioniert, liegt das vllt. an deinem Receiver. Bei meinem OpenATV Image funktioniert es immer noch ohne Probleme.
Titel: Antw:Enigma2 Integration
Beitrag von: tomster am 11 Januar 2017, 11:02:00
Servus zusammen!

Da ich auch gerade mit dem Gedanken spiele eine Enigma2-Box zu shoppen, eine kurze Frage:
Kann man auch einen Video-Stream des aktuell eigestellten Senders in FTUI einbinden?

Hintergrund:
Ich hatte bislang einen billigen DVB-Kabel-Receiver am Laufen an den ich einen Video-Encoder http://www.axis.com/de/de/products/axis-m7001 angeschlossen habe. Damit konnte ich das Live-Bild eines TV-Kanals (auf dem eine Panorama-Kamera des Skigebiets läuft) in FTUI einbinden. Dummerweise haben die nun den Kanal auf HD umgestellt, was mein Receiver nicht kann. Also brauch ich eh einen neuen Receiver. Wenn ich nun aber über Enigma ein Livebild abrufen könnte (welches aber evtl. vorher noch nach MJPEG oder so transcoded werden müsste), könnte ich mir die Nummer mit dem Video-Encoder sparen...
Titel: Antw:Enigma2 Integration
Beitrag von: rizo am 22 Januar 2018, 06:53:36
Hallo ich habe ein Problem, habe folgendes in Ftui eingerichtet:

<li data-row="3" data-col="2" data-sizex="3" data-sizey="5">
   <header style="background:#86b300;color:white"><h1>Sat TV</h1></header>
   
   <div data-type="image"
                          data-url="http://vuzero.local/grab?format=jpg"
                          data-size='350'
                          data-refresh="30"
                          class="row top-space nocache">
                 </div>
                 <div class="row top-space">
                     <div data-type="label" data-device="VUZero" data-get="eventstart_hr" data-substitution="s/(:00)$//g" class="inline middle"></div>
                     <div data-type="level" data-device="VUZero" data-get="eventcurrenttime" data-min="eventstart" data-max="eventstart_next" data-width="240"   class="horizontal inline middle"></div>
                     <div data-type="label" data-device="VUZero" data-get="eventstart_next_hr" data-substitution="s/(:00)$//g" class="inline middle"></div>
                 </div>
                 <div class="row large thin top-space">
                     <div data-type="label" data-device="VUZero" data-get="currentTitle" class="bigger bold"></div>
                     <div data-type="label" data-device="VUZero" data-get="channel" class=""></div>
                 </div>
                 <div class="row top-space">
                     <div data-type="switch" data-device="VUZero" data-get="toggle" data-set="toggle"
                          data-icon="fa-power-off" data-background-icon="-"
                          data-on-color="white" data-off-color="gray"
                          data-on-background-color="white" data-off-background-color="gray"
                          class="col-1-5">
                     </div>
                     <div data-type="push" data-device="VUZero"
                           data-icon="fa-step-backward" data-background-icon="-"
                           data-off-color="#fff" data-on-color="#aa6900"
                           data-set-on="channelDown" class="col-1-5 big">
                     </div>
                     <div data-type="switch"
                             data-device="VUZero"
                             data-states='["on","on","on"]'
                             data-set-states='["pause","play","play"]'
                             data-background-icon="fa-circle-thin"
                             data-background-colors='["white","white","white"]'
                             data-colors='["white","white","white"]'
                             data-icons='["fa-pause","fa-play","fa-play"]'
                             class="col-1-5 big">
                     </div>
                     <div data-type="push" data-device="VUZero"
                           data-icon="fa-step-forward" data-background-icon="-"
                           data-off-color="#fff" data-on-color="#aa6900"
                           data-set-on="channelUp" class="col-1-5 big">
                     </div>
                     <div data-type="switch" data-device="VUZero" data-get="mute" data-set="mute"
                           data-icon="fa-volume-off" data-background-icon="-"
                           data-on-color="white" data-off-color="gray"
                           class="col-1-5">
                     </div>
               </div>
        </li>


Das gleiche bei einer VuSolo2.

Bei der Solo2 funktioniert es ohne Probleme, aber bei der Zero ist es so, da wenn ich das Bild per grap hole, der Speicher der Zero voll wird. grap nimmt dann laut systeminformation sau viel Speicher ein und die Zero lässt sich nicht mehr richtig bedienen.

Auf beiden Boxen ist das aktuelle VTI Image drauf.

Kann das jemand nachvollziehen bzw. was kann man dagegen tun?
Titel: Antw:Enigma2 Integration
Beitrag von: rizo am 24 Januar 2018, 20:37:49
Problem hat sich mit letztem VTI Image Update irgendwie erledigt ;)