Servermodul für New FHEM Tablet UI - 02_FTUISRV.pm

Begonnen von viegener, 27 Oktober 2015, 22:57:13

Vorheriges Thema - Nächstes Thema

viegener

Wie schon im Tablet UI thread beschrieben, habe ich in meinem tablet UI viele gleichartige Widgets oder gar Widgetgruppen.
Bei Änderungen heisst das immer sehr viel manueller Aufwand und das löse ich lieber über ein Programm  ;D

Idee ist ein Servermodul, dass andere Dateien (Parts) vor der Übertragung an den Browser einfügen kann und dabei auch gleich Variablen (mit default-Werten) ersetzen. So können nicht nur der Devicename und Texte sondern auch Formatierungen angepasst werden. Solche Dateien, in die etwas eingefügt werden soll nenne ich Formulare.

Das ganze basiert auf dem 02_HTTPSrv von Boris Neubert und verhält sich für Nichtformulare auch genauso wie das Original. Wenn die Datei aber ein .ftui. im Namen trägt, so wird nach Elementen gesucht, die ersetzt werden sollen.

- Durch das tag <?ftui-inc="dateiname.part" ?> wird die durch dateiname.part angegebene Datei (mit Pfad) an der Stelle des tags eingesetzt.
- Bei ftui-inc können auch Ersetzungen für Variablen angegeben werden. <?ftui-inc="dateiname" variable1="ersetzung1" ... variablen="ersetzung20" ?>
- In der part-Datei werden Variablen durch Angabe des Tags <?ftui-key=variable ?> angegeben. Das gesamte tag wird dann durch den in ftui-inc angegebenen Wert ersetzt.
- Ausserdem kann man in der part-Datei auch Standardwerte für Variablen angeben, so dass im ftui-inc nicht alle Variablen mit Werten versehen werden. Dazu wird im Kopf der part-Datei ein <?ftui-header="Name" variable="defaultwert" ... ?> tag eingeführt, dass den defaultwert für die variable definiert. Das ftui-header-Tag wird bei der Einfügung entfernt und findet sich nicht mehr in der an FTUI übergebenen Datei.

WICHTIG: Eingefügte Dateien können selbst wieder Formulare sein, dazu müssen diese aber auch wieder im Dateinamen den Teil ".ftui." enthalten

WICHTIG: Dateinamen und Ersetzungen müssen in Anführungsstriche (") eingeschlossen werden.





Aktualisierung: 25.4. Das Modul ist jetzt auch über den normalen Update verfügbar.

Die neueste Version findet sich aber nur in github unter folgendem Link:
https://github.com/viegener/Telegram-fhem/blob/master/ftuisrv/02_FTUISRV.pm.

Achtung: Der Link verweist nicht direkt auf die Datei, sondern auf eine Seite in Githuib --> von dort kann man die Datei über den Knopf "raw" herunterladen.

Um es mit dem  FHEM Tablet UI (FTUI) zu verwenden ersetzt man einfach den existierenden define für HTTPSrv durch einen define mit FTUISrv
also z.B. so

define nftui FTUISRV ftui ./www/tablet New-FTUI




Damit es etwas klarer wird hier ein Beispiel:

In der Datei roomx.ftui.html findet sich folgender Inhalt:


<li data-row="1" data-col="2" data-sizex="2" data-sizey="1">
        <header>Bad</header>
        <?ftui-inc="temphum.part" dev="temp_gb" format="left cell" ?>
</li>


Die Datei temphum.part sieht dann wie folgt aus:


<?ftui-header="TempHum" dev format tempreading="temperature" ?>
       <div class="<?ftui-key=format ?>">
                <div data-type="label" data-device="<?ftui-key=dev ?>" data-get="<?ftui-key=tempreading ?>" data-unit="%B0C%0A" class="large"></div>
                <div data-type="label" class="small fixedlabel">Temperatur</div>
                <div data-type="label" data-device="<?ftui-key=dev ?>" data-get="humidity" data-unit="%" class="large top-space"></div>
                <div data-type="label" class="small fixedlabel">Luftfeucht.</div>
        </div>


Daraus entsteht dann folgendes Ergebnis, das an den Server gesendet wird:


<li data-row="1" data-col="2" data-sizex="2" data-sizey="1">
        <header>Bad</header>
       <div class="left cell">
                <div data-type="label" data-device="temp_gb" data-get="temperature" data-unit="%B0C%0A" class="large"></div>
                <div data-type="label" class="small fixedlabel">Temperatur</div>
                <div data-type="label" data-device="temp_gb" data-get="humidity" data-unit="%" class="large top-space"></div>
                <div data-type="label" class="small fixedlabel">Luftfeucht.</div>
        </div>
</li>


Wie immer Kommentare
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

wkarl

#1
Hallo Johannes,

ich habe nun versucht FTUISRV umzusetzen, leider ohne Erfolg. Hier die einzelnen Informationen:

list der FTUISRV Definition:
Internals:
   CFGFN      ./MyFHEM/WEB/WEBtablet_iPad.cfg
   DEF        tablet_iPad ./www/tablet_iPad/ Tablet_iPad_Frontend
   NAME       MyTablet_iPad_UI
   NR         20
   STATE      MyTablet_iPad_UI
   TYPE       FTUISRV
   Fhem:
     directory  ./www/tablet_iPad/
     friendlyname Tablet_iPad_Frontend
     infix      tablet_iPad
Attributes:
   room       Z-HA-fhem
   verbose    1


Die ftui Datei wird wie folgt aufgerufen:
   <div  class="cell"
    data-type="pagetab"
data-url="h-eg-r.ftui.html"
data-icon="oa-control_building_eg"
      data-background-icon="fa-circle"
data-off-background-color="dimgrey"
      data-on-background-color="darkorange"
data-on-color="black"
data-off-color="black">
   </div>


Inhalt von h-eg-r.ftui.html:
<!DOCTYPE html>
<html>
<head>

   <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<meta name="widget_base_width" content="100">
<meta name="widget_base_height" content="120">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
<meta name="debug" content="0"> <!-- 1=output to console;0=not output -->
<meta name="gridster_disable" content="0"> <!-- verschieben abschalten -->

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

<!-- Charts Theme CSS -->
<link rel="stylesheet" href="/fhem/tablet/lib/openautomation.css" />
<link rel="stylesheet" href="/fhem/tablet/lib/fhemSVG.css" /> 

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

<!-- Javascript -->
<script type="text/javascript" src="/fhem/pgm2/jquery.min.js"></script>
   <script type="text/javascript" src="/fhem/tablet/lib/jquery.knob.mod.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.toast.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.circlemenu.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/powerange.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/lib/jquery.gridster.min.js"></script>
   <script type="text/javascript" src="/fhem/tablet/lib/fa-multi-button.min.js"></script>
<script type="text/javascript" src="/fhem/tablet/js/fhem-tablet-ui.js"></script>

<title>EG Heizung</title>

</head>
<body>
<div class="gridster">

<ul>
<!-- Menu -->
<div class="container">
<li data-row="1" data-col="1" data-sizex="1" data-sizey="5" data-template="menu-main.html"></li>
<li data-row="6" data-col="1" data-sizex="1" data-sizey="1.5" data-template="menu-datetime.html"></li>
</div>

<!-- Content -->
<li data-row="2" data-col="2" data-sizex="2" data-sizey="3">
<header><font size="+1">Büro</font></header>
<?ftui-inc="h-hz-template_HKFH.part" dev="Buero" ?>
</li>
</ul>

</div>

</body>
</html>


Und die part Datei selber:

<?ftui-header="HKFH" dev ?>

<div class="container">
<div class="container row big top-space">
<div class="col-1-2 left">
<div data-type="label"
data-device="<?ftuikey=dev ?>_TC" data-get="measured-temp" data-unit="%B0C%0A" data-fix="1"
data-limits='[-20,20,24]' data-colors='["skyblue","darkorange","orangered"]'>
</div>
</div>
<div class="col-1-2 right">
<div data-type="label"
data-device="<?ftuikey=dev ?>_TC" data-get="humidity" data-unit="%%0A" data-fix="1"
data-limits='[0,40,60]' data-colors='["skyblue","darkorange","orangered"]'>
</div>
</div>
</div>
<div class="container row">
<div class="top-space" data-type="label">Heizkörper</div>
<div class="container top-space">
<div class="col-2-3 left">
<div data-type="thermostat"
data-device="<?ftuikey=dev ?>_HK_Clima" data-get="desired-temp" data-set="desired-temp" data-temp="measured-temp" data-valve="ValvePosition"
                                  data-min="0" data-max="30" data-step="0.5"
data-mode="controlMode"
data-off="controlManu off" data-boost="controlMode boost"
data-fgColor="darkorange"
data-height="96px"
data-width="96px">
</div>
</div>
<div class="col-1-3 top-space right"><font size="-2">
<div data-type="multistatebutton"
data-device="<?ftuikey=dev ?>_HK_Clima" data-get="controlMode" data-get-on='["auto","manual"]'
data-set='["controlMode manual","controlMode auto"]' data-icons='["oa-sani_heating_automatic","oa-sani_heating_manual"]' data-colors='["darkgreen","darkblue"]'
data-background-icon="fa-square" data-background-colors='["dimgrey","dimgrey"]'
>
</div><br>
<div data-type="multistatebutton"
data-device="<?ftuikey=dev ?>_HK" data-get="R-btnLock" data-get-on='["on","off"]'
data-set='["regSet btnLock off","regSet btnLock on"]' data-icons='["oa-secur_locked","oa-secur_open"]' data-colors='["darkred","darkblue"]'
data-background-icon="fa-square" data-background-colors='["dimgrey","dimgrey"]'
>
</div>
</font>
</div>
</div>
</div>

<div class="container row">
<div data-type="label">Fussboden</div>
<div class="container top-space">
<div class="col-2-3 left">
<div data-type="thermostat"
data-device="<?ftuikey=dev ?>_TC" data-get="desired-temp" data-set="desired-temp" data-temp="measured-temp" data-valve="actuator"
                                  data-min="0" data-max="30" data-step="0.5"
         data-mode="controlMode"
data-off="controlManu off" data-boost="controlMode boost"
data-fgColor="darkorange"
data-height="96px"
data-width="96px">
</div>
</div>
<div class="col-1-3 top-space right"><font size="-2">
<div data-type="multistatebutton"
data-device="<?ftuikey=dev ?>_TC_Climate" data-get="controlMode" data-get-on='["auto","manual"]'
data-set='["controlMode manual","controlMode auto"]' data-icons='["oa-sani_heating_automatic","oa-sani_heating_manual"]' data-colors='["darkgreen","darkblue"]'
data-background-icon="fa-square" data-background-colors='["dimgrey","dimgrey"]'
>
</div><br>
<div data-type="multistatebutton"
data-device="<?ftuikey=dev ?>_TC" data-get="R-btnLock" data-get-on='["on","off"]'
data-set='["regSet btnLock off","regSet btnLock on"]' data-icons='["oa-secur_locked","oa-secur_open"]' data-colors='["darkred","darkblue"]'
data-background-icon="fa-square" data-background-colors='["dimgrey","dimgrey"]'
>
</div>
</font>
</div>
</div>
</div>


</div>


Der screenshot zeigt das Ergebnis.

Ein Tipp wo ich weiter nach dem Fehler suchen kann?

Danke und ciao Walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

andreas13

Hallo zusammen,

Ich glaube das Modul ist seit der Existenz parametriesierter Templates nicht mehr nötig, oder?

Viele Grüße

Andreas


Gesendet von iPad mit Tapatalk
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

andreas13

Hallo zusammen,

Ich glaube das Modul ist seit der Existenz parametriesierter Templates nicht mehr nötig, oder?

Viele Grüße

Andreas


Gesendet von iPad mit Tapatalk
Maintainer des Vitoconnect Moduls
In Betrieb: FritzBox 7590, Homematic
piko Wechelrichter (HTTPMOD). Sonos ....
noch: IT

viegener

@Walter

Ich habe Deine Definitionen mal bei mir nachgestellt, dabei sind mir verschiedene Probleme aufgefallen:

1) Der Define für das Modul enthält meines Erachtens noch einen / zuviel
Ich würde die Definition nochmals löschen und dann folgendes anlegen:
define tablet_iPad FTUISRV ./www/tablet_iPad Tablet_iPad_Frontend

2) Zumindest in h-eg-r.ftui.html befinden sich Referenzen auf einen Pfad: /fhem/tablet/... selbst wenn das möglicherweise auch so existiert, ist es doch problematisch, es wäre besser in tablet_iPad ein kompletten Satz des tablet uis zu haben. Eigentlich betrifft das aber eher Deine index.html-Datei

3) Ich denke in h-eg-r.ftui.html können aber die gesamten css / js-Includes entfallen, die werden ja vom index.html eingelesen.

Nur als Seitenanmerkung, die Umlaute sind als äöü geschrieben, hier müsste in html eigentlich als &auml; etc stehen, sonst bekommst Du falsche Zeichen.

Wenn Du die Änderungen umstellst, habe ich hier noch eine Version von FTUISRV angehängt, die mehr Info herausgibt, wenn man das Attribut verbose auf den Wert 5 setzt. Hinweis wenn bei verbose 5 keine Einträge im log entstehen, dann kommen Deine Requests gar nicht beim Modul an. Diese lässt sich ganz gut verhindern, wenn man das Verzeichnis im www-Verzeichnis anders nennt als den Teil im URL. Also das Verzeichnis z.B. nur iPad (die urls bleiben natürl,ich bei fhem/tablet_iPad).



Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Zitat von: andreas13 am 01 Januar 2016, 16:31:18
Hallo zusammen,

Ich glaube das Modul ist seit der Existenz parametriesierter Templates nicht mehr nötig, oder?


Aus meiner Sicht schon, da der Zusammenbau auf Server-Seite besser geeignet ist um Probleme mit Javascript bei den dynamischen Ladevorgängen zu vermeiden. Für das Javascript kommt dann wenigstens nur 1 Datei heraus. Ausserdem würde ich gerne immer noch eine Seite dynamisch aufbauen können.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

wkarl

Zitat von: viegener am 01 Januar 2016, 19:48:20
Aus meiner Sicht schon, da der Zusammenbau auf Server-Seite besser geeignet ist um Probleme mit Javascript bei den dynamischen Ladevorgängen zu vermeiden. Für das Javascript kommt dann wenigstens nur 1 Datei heraus. Ausserdem würde ich gerne immer noch eine Seite dynamisch aufbauen können.

Hallo Andreas,
in dieses Problem bin ich gelaufen. Ich habe ein Template für meine Thermostate erstellt und es mehrmals innerhalb einer Darstellung aufgerufen. Eine 100% richtige Darstellung kommt fast nie zustande.
Deswegen teste ich aktuell die Lösung von Johannes.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Zitat von: viegener am 01 Januar 2016, 19:46:09
Wenn Du die Änderungen umstellst, habe ich hier noch eine Version von FTUISRV angehängt, die mehr Info herausgibt, wenn man das Attribut verbose auf den Wert 5 setzt.

Hallo Johannes,

habe zum Testen alles soweit abgespeckt, dass sowenig wie möglich Nebeneffekte entstehen.
Im Log findet sich nun z.B. Folgendes (auf MyTestUI gefiltert):
2016.01.02 13:43:32.904 5: MyTestUI: Request to :/TEST/menu-datetime.html:
2016.01.02 13:43:32.904 5: MyTestUI: handletemplatefile :./www/TEST/menu-datetime.html:
2016.01.02 13:43:33.434 5: MyTestUI: Request to :/TEST/js/widget_pagetab.js:
2016.01.02 13:43:33.434 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_pagetab.js:
2016.01.02 13:43:33.442 5: MyTestUI: Request to :/TEST/js/widget_clock.js:
2016.01.02 13:43:33.443 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_clock.js:
2016.01.02 13:43:34.047 5: MyTestUI: Request to :/TEST/js/widget_famultibutton.js:
2016.01.02 13:43:34.047 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_famultibutton.js:
2016.01.02 13:43:34.075 5: MyTestUI: Request to :/TEST/js/widget_widget.js:
2016.01.02 13:43:34.075 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_widget.js:
2016.01.02 13:43:34.132 5: MyTestUI: Request to :/TEST/hegr.ftui.html:
2016.01.02 13:43:34.133 5: MyTestUI: handletemplatefile :./www/TEST/hegr.ftui.html:
2016.01.02 13:43:34.134 4: MyTestUI: is real template :./www/TEST/hegr.ftui.html:


Jedoch stirbt fhem mit der letzten Zeile :-(

Das ungefilterte Log sieht dann so aus:
2016.01.02 13:43:34.047 5: MyTestUI: Request to :/TEST/js/widget_famultibutton.js:
2016.01.02 13:43:34.047 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_famultibutton.js:
2016.01.02 13:43:34.075 5: MyTestUI: Request to :/TEST/js/widget_widget.js:
2016.01.02 13:43:34.075 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_widget.js:
2016.01.02 13:43:34.080 0: HMLAN_Parse: HMLAN_03 R:EA11B22   stat:0000 t:52375363 d:FF r:FFBE     m:02 A001 A11B22 1C3828 010E
2016.01.02 13:43:34.084 0: HMLAN_Parse: HMLAN_02 R:EA11B22   stat:0000 t:525A9784 d:FF r:FFBB     m:02 A001 A11B22 1C3828 010E
2016.01.02 13:43:34.132 5: MyTestUI: Request to :/TEST/hegr.ftui.html:
2016.01.02 13:43:34.133 5: MyTestUI: handletemplatefile :./www/TEST/hegr.ftui.html:
2016.01.02 13:43:34.134 4: MyTestUI: is real template :./www/TEST/hegr.ftui.html:
Undefined subroutine &main::fileparse called at ./FHEM/02_FTUISRV.pm line 330.


Die Zeile 330 sieht so aus:
    my ($dum, $curdir) = fileparse( $filename );


Was könnte hier der Grund sein?

Danke und ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

viegener

Zitat von: wkarl am 02 Januar 2016, 13:58:44
Die Zeile 330 sieht so aus:
    my ($dum, $curdir) = fileparse( $filename );


Was könnte hier der Grund sein?


Sieht so aus als ob das Dateinamenmodul (File::Basename) bei Dir nicht standardmässig geladen ist. OK, das hätte ich gleichexplizit hinzufügen sollen.

Anbei das neue Modul mit der einen Zeile hinzugefügt:
use File::Basename;

Bitte nochmals damit ausprobieren.
Generell ist der Logfile aber schon gut, denn die Anfragen kommen vorbei und das Template wurde auch erkannt, dann sollten auch die Ersetzungen gehen, denn die sahen soweit gut aus.

Danke für die Geduld...

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

wkarl

Hallo Johannes,

funktioniert jetzt. Super.

Und ne Frage - folgendes Konstrukt wird vermutlich nicht unterstützt?
data-device="<?ftuikey=dev ?>_TC"

Danke und ciao
walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

viegener

Klasse, doch auch auch eine solche Umsetzung sollte kein Problem sein. Ich habe zwar keinen Versuch gemacht, aber da keine Vorbedingungen für die Umgebung gelten, sollte auch hier die Umsetzung funktionieren.

Eine Funktionalität, die ich bisher noch nicht umgesetzt habe ist ein IF-Konstrukt, das es erlaubt basierend auf Variableninhalten unterschiedliche Teile auszugeben.

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

wkarl

Hallo Johannes,

bin nochmal Deine Beschreibung durchgegangen, um sicher zu gehen keinen grundlegenden Fehler zu haben. Aber das Ersetzen klappt nicht so.

Inhalt der Datei, die das Formular aufruft:
<!DOCTYPE html>
<html>
<head>


<title>EG Heizung</title>

</head>
<body>
<div class="gridster">

<ul>
<!-- Menu -->

<!-- Content -->
<li data-row="2" data-col="2" data-sizex="2" data-sizey="3">
<header><font size="+1">Bro</font></header>
<?ftui-inc="hhztemplateHKFH.part" dev="Buero_TC" ?>
</li>
</ul>

</div>

</body>
</html>



Das Formular selber:

<?ftui-header="HKFH" dev ?>

<div class="container">
<div class="container row big top-space">
<div class="col-1-2 left">
<div data-type="label"
data-device="<?ftuikey=dev ?>" data-get="measured-temp" data-unit="%B0C%0A" data-fix="1"
data-limits='[-20,20,24]' data-colors='["skyblue","darkorange","orangered"]'>
</div>
</div>
<div class="col-1-2 right">
<div data-type="label"
data-device="<?ftuikey=dev ?>" data-get="humidity" data-unit="%%0A" data-fix="1"
data-limits='[0,40,60]' data-colors='["skyblue","darkorange","orangered"]'>
</div>
</div>
</div>


</div>



Das gefilterte log:
2016.01.02 16:42:47.692 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_widget.js:
2016.01.02 16:42:47.742 5: MyTestUI: Request to :/TEST/hegr.ftui.html:
2016.01.02 16:42:47.743 5: MyTestUI: handletemplatefile :./www/TEST/hegr.ftui.html:
2016.01.02 16:42:47.744 4: MyTestUI: is real template :./www/TEST/hegr.ftui.html:
2016.01.02 16:42:47.744 4: MyTestUI: look for includes :./www/TEST/hegr.ftui.html:
2016.01.02 16:42:47.745 4: MyTestUI: include found :./www/TEST/hegr.ftui.html:    inc :hhztemplateHKFH.part:   vals :dev="Buero_TC" :
2016.01.02 16:42:47.745 4: MyTestUI: a key :dev: = :Buero_TC:
2016.01.02 16:42:47.746 4: MyTestUI: start handling include (rec) :./www/TEST/hhztemplateHKFH.part:
2016.01.02 16:42:47.746 5: MyTestUI: handletemplatefile :./www/TEST/hhztemplateHKFH.part:
2016.01.02 16:42:47.747 4: MyTestUI: done handling include (rec) :./www/TEST/hhztemplateHKFH.part: ok
2016.01.02 16:42:47.865 5: MyTestUI: Request to :/TEST/js/widget_label.js:
2016.01.02 16:42:47.865 5: MyTestUI: handletemplatefile :./www/TEST/js/widget_label.js:


Im screenshot siehst Du das Ergebnis.

Wo kann das Problem liegen?

Danke und ciao
walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

viegener

Zitat von: wkarl am 02 Januar 2016, 16:54:25
Hallo Johannes,

bin nochmal Deine Beschreibung durchgegangen, um sicher zu gehen keinen grundlegenden Fehler zu haben. Aber das Ersetzen klappt nicht so.


Ich habe es mir gerade angeschaut:

1) Nur Dateien, die den Teil ".ftui." im Dateinamen enthalten werden als templates behandelt und nur darin werden Ersetzungen durchgeführt. Das hat den Sinn, dass der Aufwand für die Suche nach Ersetzungen nur dann durchgeführt wird, wenn das auch notwenidgt ist.
hhztemplateHKFH.part müsste also besser hhztemplateHKFH.ftui.part heissen

2) In der Datei hhztemplateHKFH.part müsste statt ftuikey korrekterweise ftui-key stehen. Alle FTUISRV Schlüsselworte beginnen mit <?ftui-

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

wkarl

Hallo Johannes,

jetzt funktioniert es, Danke.

Zwei Probleme waren der Grund:

  • es muss narürlich ftui-key heissen
  • in Deiner Beschreibung beinhaltet der Name der .part Datei kein ftui

Ich nehme mal an, dass sowohl die aufrufende Datei als auch die .part Datei im Namen ein ftui haben muss. (nicht getestet, keine Zeit wg Schneeschippen)

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

Hallo Johannes,

nun habe ich das erste Geschoss fertig basierend auf FTUISRV. Du hast einen Super-Job gemacht. Thumbs up.

Ich hätte gerne Dein Modul als Alternative zu der template-Lösung. Wie bekommen wir das realisiert?

Danke für Deine Arbeit und Geduld.
ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen