Hauptmenü

FTUI version 3

Begonnen von Bunnu, 25 Oktober 2020, 09:25:41

Vorheriges Thema - Nächstes Thema

mr_petz

@M.Piet

Es sollte sich doch mit active nur mit map on öffnen und bei off nix machen...
Also im map vom [active] nur on:true setzen.
Dann sollte die Zeit laufen...
Bsp:

<ftui-popup id="pop2.tuerklingel.OG" [active]="HMW_IO_12_Sw14_DR_NEQ0308160_15:state | map('on: true')" timeout="60" width="1240px" height="815px">


LG mr_petz

Superposchi

Ich weiß zwar wozu Github da ist komme aber mit der Oberfläche nicht wirklich zurecht. Bei den Projekten für meine Multimediabox gibt es einen Download-Button. Hier beim FTUI3 finde ich nichts dergleichen. Daher die Frage.

Die Installationsanweisungen habe ich gefunden und durchgeführt. Sehe aber weder in Fhem noch in der Ordnerstruktur keinerlei Veränderung.

Außerdem suche ich eine Übersicht der verfügbaren Elemente für FTUI3, so wie es das unter FTUI2 gibt, am besten mit Beispielen oder Codeauszügen die man sich ansehen kann.

Meine HTML5-Zeit ist schon etwas her, muss mich erstmal wieder einarbeiten und dafür sind Beispielsnippets immer gut geeignet.

Den Link kenne ich, ist ja die Installationsanleitung.

2space

Zitat von: docolli am 04 Januar 2023, 13:10:54
Ich habe inzwischen eine relative große FTUI index.html, da ich mein GUI per <ftui-tab> bzw. <ftui-tab-view> in einzelne Tabs aufgeteilt habe. Zwischen die einzelnen <ftui-tab-view> Tags habe ich jeweils die für mich passenden <ftui-grid-tile> samt ihrem Inhalt platziert.
Jetzt möchte ich das Ganze durch Auslagerung in einzelne Dateien besser strukturieren, leider komme ich mit <ftui-content> innerhalb der <ftui-tab-view> nicht zum Ziel.

Geht mir genauso. Ich "quäle" mich gerade nochmal durch den Thread hier und hoffe die Lösung dabei zu finden.

mr_petz

@2space

Laut docolli:
Zitat von: docolli am 04 Januar 2023, 13:10:54
...
EDIT: Hab es selber geschafft, dank der Frage von Eisix und seinem Beispielcode. Problem bei mir war, dass ich das <ftui-content> noch in ein <ftui-grid-tile> packen musste. Ausserdem musste ich auf die Reihenfolge der Elemente im Code achten. Diese bestimmt die Position im Z-Stapel und bei mir hat sich damit ein grid Element "oberhalb" des Tab-View Menu befunden, somit waren die Links "dahinter" und nicht mehr erreichbar. ???

hilft dir das Beispiel von Eisix:
https://forum.fhem.de/index.php/topic,115259.msg1255526.html#msg1255526
Bsp.@Eisix:

<ftui-grid base-width="69" base-height="48" margin="1">               
        <ftui-grid-tile row="1" col="11" height="2" width="1" class="mybgimage">
                <header>T&uuml;r</header>
                <ftui-content file="test4.1.1.html"></ftui-content>
        </ftui-grid-tile>
</ftui-grid>


LG mr_petz

M.Piet

Zitat von: mr_petz am 06 Januar 2023, 22:37:56
@M.Piet

Es sollte sich doch mit active nur mit map on öffnen und bei off nix machen...
Also im map vom [active] nur on:true setzen.
Dann sollte die Zeit laufen...
Bsp:

<ftui-popup id="pop2.tuerklingel.OG" [active]="HMW_IO_12_Sw14_DR_NEQ0308160_15:state | map('on: true')" timeout="60" width="1240px" height="815px">


Hmmm.. irgendwas ist da komisch.
Das Popup bleibt nun auch die 60 Sekunden offen. Aber es öffnet sich immer beim Neuladen der Seite.

Ruhezustand:
HMW_IO_12_Sw14_DR_NEQ0308160_15:state:off
Wenn ich die Seite neu lade, darf das Popup so doch gar nicht aufgehen. Aber warum macht es das dann?

meier81

#3065
Hallo M.Piet,

probiere es mal so:

<ftui-popup id="pop2.tuerklingel.OG" active="false" [active]="HMW_IO_12_Sw14_DR_NEQ0308160_15:state | map('on: true')" timeout="60" width="1240px" height="815px">

Dann wird active erstmal mit false vorbelegt, vielleicht bring das die erhoffte Lösung.

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || SIGNALduino 433MHz mit Maple mini || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices

juemuc

Zitat von: Superposchi am 07 Januar 2023, 09:43:14
Den Link kenne ich, ist ja die Installationsanleitung.

Und am Ende ist der Link für weitere Infos (inkl. Beispiele).

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Superposchi

Am Ende ist der der Link zum GitHub, mehr nicht.

OdfFhem

Zitat von: Superposchi am 07 Januar 2023, 09:43:14
Die Installationsanweisungen habe ich gefunden und durchgeführt. Sehe aber weder in Fhem noch in der Ordnerstruktur keinerlei Veränderung.

Im angegebenen Link zum Einstieg fehlt wohl noch ein Hinweis zu HTTPSRV
... insbesondere bei Parallelbetrieb hilfreich ... https://forum.fhem.de/index.php/topic,119312.msg1141138.html#msg1141138

Wenn nach dem Ausführen von "update all ..." kein www/ftui-Ordner vorhanden ist, ist vermutlich etwas schiefgegangen.

Zitat von: Superposchi am 07 Januar 2023, 18:34:26
Am Ende ist der der Link zum GitHub, mehr nicht.

Der Link zum GitHub führt im Grunde zu einer Art Basis-Doku
... dort findet man u.a Informationen zu den offiziellen Web-Komponenten aus dem components-Ordner
... dort findet man u.a die Möglichkeit zum direkten Testen von Beispielen aus dem examples-Ordner
    ... oft auch (unverändert) lokal möglich

Der Link zu den "Best practices" befindet sich noch im Aufbau
... die meisten "Lösungen" sind derzeit in diesem Thread zu finden bzw. zu suchen

mr_petz

Zitat von: juemuc am 31 Dezember 2022, 14:14:05
Hallo mr_petz,

ich beschäftige mich gerade mit dem Thema "Weekdaytimer". Dazu habe ich noch folgende Fragen:

Kann man hiermit nur eine Uhrzeit mitgeben oder ist auch die Definition von Sonnenaufgang bzw. Sonnenuntergang möglich

Meine Weekdaytimer sind z.B. so in FHEM definiert:
defmod Esszimmerlampe_WT WeekdayTimer Esszimmerlampe_WT_dummy de 1234560|{sunset_abs("HORIZON=-0.9","00:00","00:00")}|on (ReadingsVal("Uhrzeit","state","") le "20:30")
...

Jetzt kannst du bereits definierte Sonnenauf- bzw. Sonnenuntergänge einlesen und bearbeiten und/oder einen Code hinzufügen bzw. bearbeiten.
Eingelesen und gesetzt, wenn vorhanden, werden jetzt auch !$we (8 === Werktage in fhem->1234568) und $we (7 === Wochenende in fhem->067).
Layout ist immer noch einfach gestrickt siehe Anhang...
Danke auch fürs testen... :)
Mal sehen wenn ich wieder Zeit finde den timer zu erweitern...

LG mr_petz

mr_petz

Zitat von: meier81 am 07 Januar 2023, 17:58:19
Hallo M.Piet,

probiere es mal so:

<ftui-popup id="pop2.tuerklingel.OG" active="false" [active]="HMW_IO_12_Sw14_DR_NEQ0308160_15:state | map('on: true')" timeout="60" width="1240px" height="815px">

Dann wird active erstmal mit false vorbelegt, vielleicht bring das die erhoffte Lösung.

Gruß Markus

Das bringt leider nix.
active='false' ist von hause aus vorbelegt im Code.
Das hängt mit dem case vom active zusammen...

LG

Superposchi

Also im GitHub gibt es etliche Dateien, aber nichts davon würde ich als Doku im Sinne von FTUI2 bezeichnen. Dort gibt es zwar auch einen Unterordner namens Examples, aber die dort enthaltenen Dateien sind wohl eher Codesnipsel, jedoch ohne wirkliche Erklärung. Ehrlich gesagt geht daraus nicht mal der Codeaufbau für HTML5 hervor der die Elemente erstellt.
Den Link wegen dem Parallelbetrieb werde ich mir ansehen, da das bei mir ein wichtiger Punkt ist.

Das mit der Veränderung war schlecht ausgedrückt. Es hat sich offensichtlich nichts geändert, da die Unterordner bereits durch mein verwendetes FTUI2 vorhanden waren.

OdfFhem

Zitat von: M.Piet am 06 Januar 2023, 19:01:53
Muss ich noch was hinzufügen, damit das Popup aufbleibt, auch wenn der state wieder auf "off" wechselt?

Ich habe das gezeigte Beispiel folgendermaßen abgeändert:

[active]="ftuitest:klingel | map('off: ignore') | t=>t==='ignore'?this.active:t" timeout="10"

- ginge auch ohne zwischengeschaltetes map, ist aber so besser nachvollziehbar
- off wird also auf ignore gemappt
- abschließend wird
  - bei ignore auf den momentanen Zustand gesetzt ... führt zu keiner Änderung, da wegen Wertgleichheit nicht weitergereicht wird
  - bei on einfach on weitergegeben ... entspricht nicht dem bislang gespeicherten Wert und führt automatisch zu (nicht false) ... erneutes on während active=true startet den Timer neu

Mit dieser Variante könnte die Klingel auch ein "einfacher" Push-Button sein, der nur on kennt ... ansonsten scheitert man am immer gleichen Event, das nicht weitergereicht wird

mr_petz

#3073
@OdfFhem

Ok.
Das map() wird hier überflüssig...:
(Sorry.. hattest du ja oben erwähnt...leider überlesen ::))

[active]="dummy | t=>t==='off'?this.active:t" timeout="30"


Edit: man muss natürlich das 'off' durch sein Reading wenn nicht 'off' ersetzen...

alternativ:

[active]="dummy | replace('off',false)" timeout="30"

Hier wird bei off false replaced.
Wenn popup sichtbar dann wird bei off nix gemacht und es bleibt offen.
Nachteil. Bei on und off triggert das Popup wenn es hidden ist...

Da sieht man wieder die Möglichkeiten...
Aber im Popup sollte das angepasst werden...,denn wenn active im map nur bei on an gehen soll, dann soll alles andere ignoriert werden...oder man muss beim start damit leben das es offen ist...
Ein map ist zur Zeit im popup nicht nötig solange sich das Reading ändert und nicht null ist.
Also der jeder Wert (egal welcher) wird in this.active zu true wenn er sich ändert und das Popup aus ist...

LG mr_petz

M.Piet

Zitat von: mr_petz am 07 Januar 2023, 19:53:20
Das bringt leider nix.
active='false' ist von hause aus vorbelegt im Code.
Das hängt mit dem case vom active zusammen...

LG

Genau. Hatte es getestet und es hat nichts gebracht.
Aber wie bekomme ich denn mein Popup so hin, dass es bei einer kurzen Betätigung der Türklingel für 30 Sekunden auf bleibt?

Unter FTUI2 war es doch auch kein Problem:
<div data-type="popup"
data-device="HMW_IO_12_Sw14_DR_NEQ0308160_15"
data-get="state"
data-get-on="on"
data-get-off="off_dummy"
data-mode="animate"
data-return-time="60"
data-height="750px"
data-width="1100px">
<div class="dialog">
<header>Popup</header>
<div data-type="image" data-device="Kamera_CAM1_Haustuer" data-get="StmKeymjpegHttp" data-size="1110" class="cell"></div>