Hauptmenü

FTUI3 Pipes

Begonnen von Superposchi, 18 Oktober 2024, 12:42:09

Vorheriges Thema - Nächstes Thema

Superposchi

Gibt es vielleicht jemanden der Erfahrener ist und für die ganzen Pipes jeweils ein Beispiel der Schreibweise inkl. der Bedeutung der möglichen Klammerangaben (zb bei Format DD, MM etc.)auflisten könnte.
const part = value => input => ftuiHelper.getPart(input, value);
const toDate = value => input => ftuiHelper.dateFromString(input, value);
const toBool = () => input => ftuiHelper.toBool(input);
const toInt = () => input => parseInt(input, 10);
const toNumber = () => input => parseFloat(input, 10);
const format = value => input => ftuiHelper.dateFormat(input, value);
const humanized = () => input => ftuiHelper.durationHumanized(input);
const round = value => input => ftuiHelper.round(input, value);
const fix = value => input => Number(input).toFixed(value);
const roundMoney = () => input => ftuiHelper.formatMoney(Number(input));
const slice = (start, end)  => input => String(input).slice(start, end);
const encode = () => input => encodeURI(input);
const add = value => input => Number(input) + value;
const multiply = value => input => Number(input) * value;
const divide = value => input => Number(input) / value;
const replace = (find, replace) => input => String(input).replace(find, replace);
const map = value => input => ftuiHelper.getMatchingValue(parseHocon(value, true), input);
const filter = value => input => ftuiHelper.filter((value).split(','), input);
const step = value => input => ftuiHelper.getStepValue(parseHocon(value, true), input);
const scale = (minIn, maxIn, minOut, maxOut) => input => ftuiHelper.scale(input, minIn, maxIn, minOut, maxOut);
const ago = () => input => ftuiHelper.dateAgo(input);
const till = () => input => ftuiHelper.dateTill(input);
const timeFormat = (format, inputMode = 'ms', formatMode = 'lower') => input => ftuiHelper.timeFormat(input, format, inputMode, formatMode);
const minusBlue = (value = 0) => input => Number(input) < value ? 'blue' : null;
const contains = value => input => String(input).indexOf(value) > -1 ? true : false;
const not = () => input => input === true ? false : true;;
const is = value => input => String(input) === value ? true : false;
const isNot = value => input => String(input) !== value ? true : false;
const pad = (cnt, char) => input => String(input).padStart(cnt, char);
const append = value => input => String(input) + value;
const prepend = value => input => value + String(input);
const sendCommand = value => () => send(value);
const getHTML = value => () => send('get ' + value + ' html');

Diese Liste bringt mich bei der Anwendung der Pipes nicht wirklich weiter. Und Im Forum ist das Thema auch nicht wirklich erschöpfend angesprochen.

@Setstate
Vielleicht kannst du ja doch mal so eine Art Dokumentation in verständlicher Form schreiben. Wäre auch gerne behilflich bei der Bereinigung und dem Lektoring. FTUI2 hatte da echt viel zu bieten.

grossmaggul

Ein Teil der Pipes wird im github beschrieben.

https://github.com/knowthelist/ftui?tab=readme-ov-file#pipes

Damit und mit der von Dir geposteten Liste kann man sich die anderen herleiten.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Superposchi

Wenn dem so wäre hätte ich diesen Beitrag nicht eröffnet.
Aber wenn es dir so leicht fällt, macht es dir ja sicher nichts aus für jede Pipe einige Beispiele zusammenzustellen.

Denn weder aus der GitHub-Seite noch der anderen Liste geht beispielsweise hervor wann eine Pipe vor dem Device steht und wann danach. Es gibt zb. auch nirgendwo eine Übersicht welche Kombinationen für Format erlaubt sind. Mann muss raten ob es hh oder HH heißen muss, ob d oder dd. Es gibt auch keine Erklärungen was die Pipe wie zb Append (deren Bezeichnung nicht eindeutig einer Funktion zugeordnet werden kann) eigentlich bedeuten

FTUI3 ist eine geile Sache aber es fehlt leider jegliche Dokumentation.

yersinia

Zitat von: Superposchi am 18 Oktober 2024, 15:21:02Denn weder aus der GitHub-Seite noch der anderen Liste geht beispielsweise hervor wann eine Pipe vor dem Device steht und wann danach.
Vor dem Device ergibt imho keinen Sinn und ist auch so nicht gedacht; man übergibt mit der pipe etwas.

Zitat von: Superposchi am 18 Oktober 2024, 15:21:02Append (deren Bezeichnung nicht eindeutig einer Funktion zugeordnet werden kann)
Gerade diese pipe-Funktion ist imho schon nahezu selbsterklärend.

Bezgl Dokumentation hast du recht, es fehlt an Details und Funktionsbeschreibungen, welche man sich, ohne den Code zu interpretieren oder den Riesen-Thread durchzuwühlen, kaum herleiten können wird.

Vlt ein Anstoß für setstate, dies zu beginnen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

grossmaggul

#4
ZitatAber wenn es dir so leicht fällt, macht es dir ja sicher nichts aus für jede Pipe einige Beispiele zusammenzustellen.
Warum sollte ich, wenn sie sich aus dem Github ergeben, man muss sich halt mal ein bißchen Mühe geben.

Und was das Thema Doku anbelangt, das hatten wir hier schön öfter und ich denke, wenn die Community es nicht schafft eine Doku zu schreiben, wird es auch keine geben. Denn es stellt sich mir so dar, daß setstate nicht großartig Lust verspürt eine ausführliche Doku zu schreiben.

FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Superposchi

ZitatWarum sollte ich, wenn sie sich aus dem Github ergeben, man muss sich halt mal ein bißchen Mühe geben.
Gebe ich mir seit Tagen, aber vielleicht bin ich einfach nicht so intelligent wie du. Für mich ergibt sich da jedenfalls NICHTS.

Als Beispiel:
const ago = () => input => ftuiHelper.dateAgo(input);Was soll einem der Mist sagen, nirgendwo eine Erklärung was inut ist, ftuiHelper gibt es als Pipe gar nicht, nirgendwo wird erläutert wie die Syntex auszusehen hat. Nur mal so nebenbei.
Aber wenn du der Meinung bist das sich daraus etwas selbst ergibst, bitte sehr. Ich glaube es nicht, sonst könntest du einfach mal ein Beispiel liefern statt diese verächtlichen Kommentare.

ZitatUnd was das Thema Doku anbelangt, das hatten wir hier schön öfter und ich denke, wenn die Community es nicht schafft eine Doku zu schreiben, wird es auch keine geben. Denn es stellt sich mir so dar, daß setstate nicht großartig Lust verspürt eine ausführliche Doku zu schreiben.
Ist mir klar das er wahrscheinlich keine große Lust hat, ist immerhin ein großer Umfang inzwischen. Nur auch hier wieder der gleiche Quatsch deinerseits wie oben. Was soll die Community da leisten, der EINZIGE der alle Atribute etc. kennt ist leider Setstate. Niemand anderer!

ZitatVor dem Device ergibt imho keinen Sinn und ist auch so nicht gedacht; man übergibt mit der pipe etwas.
In der Regel sicher nicht, dennoch habe ich im Hauptthreat einige Stellen gefunden wo es vor dem Device geschrieben stand und nur so funktionierte. Beispiele müsste ich allerdings jetzt suchen. Ich glaube das hatte mit lesen und schreiben zu tun, also wenn ein verändertes Device/Reading geschrieben werden soll, bin mir aber nicht sicher.

yersinia

Zitat von: Superposchi am 18 Oktober 2024, 21:11:09aber vielleicht bin ich einfach nicht so intelligent wie du.
Zitat von: Superposchi am 18 Oktober 2024, 21:11:09sonst könntest du einfach mal ein Beispiel liefern statt diese verächtlichen Kommentare.
Zitat von: Superposchi am 18 Oktober 2024, 21:11:09Nur auch hier wieder der gleiche Quatsch deinerseits wie oben.
Bemerkenswert, wie reproduzierbar konsequent und schnell du es schaffst, potentieller Hilfe aktiv aus dem Weg zu gehen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Superposchi

Sorry, aber wieso sollte ich aktiver Hilfe aus dem Weg gehen? Wo hat er denn geholfen? War irgendein Satz inhaltlich zum Thema?

Das Setstate nicht viel Lust hat kann sich jeder mit ein wenig Menschenverstand selbst denken. Und leider ist es eher ein Fakt das die Community eben nicht in der Lage ist ein Doku zu schreiben, da sie nicht alle Variationen, Attribute etc. kennen kann. Das kann nur derjenige der es geschrieben hat, also setstate.

Ichchabe also lediglich grossmaguls Post richtiggestellt.

Und wenn sich die Pipes für ihn so einfach ergeben ist das doch schön für ihn, für mich tun sie das nicht. Ich kann aus dem genannten Beispiel weder eine Syntex noch den Inhalt der Klammerwerte ableiten. Value bedeutet Wert und input Eingabe, doch ohne Kontext sagt mir das rein gar nichts.

Das meine Antwort vielleicht etwas patzig ausgefallen ist liegt einfach daran, dass ich alergisch auf Wiederholungen reagiere, denn ich kapiere auch beim ersten Post, das er nicht helfen WILL.

Also was soll jetzt dein Post?

Superposchi

Typisch, stellt man die Angriffe richtig, kommt nix mehr.

Echt traurig, das von einigen hier mehr Wert auf Kritik und dumme Kommentare als auf Hilfe gelegt wird und sie dann nicht mal die Eier in der Hose haben Kritik an ihrer Kritik zu schlucken.

elle

#9
Hallo zusammen,

ich versuche mal, die Wogen ein wenig zu glaetten.

@Superposchi: Offensichtlich hast Du Schwierigkeiten, den Code zu verstehen (kann ich durchaus nachvollziehen, wenn man mit dieser Syntax nicht vertraut ist), aber davon ausgehend, dass Du weisst, dass dies Javascript (bzw. ECMAscript) ist (Hint - Dateiendung .js), kann ich auch grossmaguls und yersinias Standpunkt nachvollziehen, dass man sich ein wenig mit diesen Stichworten bei den Herren Page und Brin (aka Google) nach Dokus umgucken und dann schlau machen koennte.

Zudem haettest Du, nachdem Du ja im Verzeichnis modules/ftui diese Datei ftui.binding.js offensichtlich schon gefunden hast, nochmal gucken koennen und festgestellt, dass es dort auch eine Datei namens ftui.helper.js gibt.

Diese wird tatsaechlich in der _ersten_ Zeile der von Dir schon gezeigten Datei als ftuiHelper Klasse importiert:
import * as ftuiHelper from './ftui.helper.js';
Nach der Lektuere von Doku und/oder Tutorials haettest Du dann festgestellt, dass z.B. der Aufruf
ftuiHelper.getPart(input, value);bedeutet:
"Rufe aus der Klasse ftuiHelper die Methode (aka Funktion) getPart mit den Argumenten input und value auf."

Bei weiterem aufmerksamen Lesen ohne sinnlose Wut im Bauch waere Dir dann auch aufgefallen, dass input immer der Wert des vorhergehenden Schritts der Pipe ist, und value bzw. alles, das in der Definition an erster Stelle hinter dem Gleichheitszeichen steht, beim Aufruf der Pipe in den Klammern steht, d.h. ein Argument der Funktion ist - z.B.:
const part = value => input => ftuiHelper.getPart(input, value);
oder
<ftui-label [text]="MeinDevice:Reading | part( value )"></ftui-label>Dabei ist der Wert von MeinDevice:Reading in input wiederzufinden.

Diese Pipe/Funktion/Methode hat keine Argumente, daher steht hier statt value das leere Klammerpaar:
const toBool = () => input => ftuiHelper.toBool(input);bzw.
<ftui-label [hidden]="MeinDevice:Reading | toBool()" text="SomeText"></ftui-label>In diesem Fall gibt es mehr als ein Argument und 2 davon haben einen default Wert:
const timeFormat = (format, inputMode = 'ms', formatMode = 'lower') => input => ftuiHelper.timeFormat(input, format, inputMode, formatMode);bzw. z.B.
<ftui-label [text]="MeinDevice:Reading | timeFormat('%H:%M')"></ftui-label>
Um zu sehen, welche Formate fuer Datum oder Zeit zur Verfuegung stehen, solltest Du in die jeweiligen Methoden/Funktionen in der ftui.helper.js schauen - dort sind sie definiert und aus der Definition sollte klar werden, was zu nutzen ist.

Insofern muss ich yersinia und grossmaggul durchaus recht geben - Lesen bildet und hilft beim Verstaendnis von nicht offensichtlichen Zusammenhaengen ungemein.

Wo ich Dir recht gebe, ist, dass die Doku zu FTUI3 verbesserungswuerdig ist, allerdings ist dies offensichtlich gerade nicht setstates Prioritaet und da dies ein Hobbyprojekt ist und nicht das, was ihn und seine Familie ernaehrt, hat er jedes Recht, selber zu entscheiden, was und wieviel er hier investiert.

Damit muessen wir leben und wenn wir es nutzen wollen, selber etwas investieren und uns nicht alles von anderen vorkauen lassen.
Wir alle koennten natuerlich auch mehr investieren und helfen, diese Doku zu erstellen bzw. zu ergaenzen, aber der Tag hat bei jedem von uns nun mal nicht mehr als 24 Stunden und ich gehe davon aus, dass bei den allermeisten neben Schlafen auch Familie und Arbeit und - vielleicht - auch noch andere Hobbies auf der Agenda stehen.

Moechte man es einfacher haben, sollte man bei FTUI2 bleiben, FUIP nutzen oder ganz das System wechseln, denn FHEM bzw. FTUI3 im Speziellen ist meiner Meinung nach, nicht unbedingt fuer Leute, die am PC nicht ueber "Next"-"Next"-"Finish" Installationen hinweggekommen sind und nicht bereit sind, sich intensiver damit zu beschaeftigen.

Genau deshalb - und weil es in Perl geschrieben ist - ist es aber genau das Richtige fuer mich.

Viele Gruesse und nix fuer ungut

Dr. Boris Neubert

Danke, elle, für den konstruktiven Input.

Grundsätzlich ist die FHEM-Community sehr hilfsbereit. Jeder hier hat mal klein angefangen. Die Entwickler und Helfer machen das alles freiwillig, und die meisten können sich eine Intensivbetreuung ihrer Anwendungen und der Anwender nicht leisten. Das bedeutet für die Unterstützung Suchenden, dass Eigeninitiative und eine konkrete Benennung einer bestimmten Fragestellung dienlich sind, während (versteckte) Forderungen und Argumente auf die Person eher für Ablehnung sorgen.

Sollte dieses Thema wieder aus der Bahn laufen, werde ich es schließen.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Superposchi

@elle
Hallo und Danke für den Versuch, aber ich glaube ich muss da auch mal die andere Sichtweise veranschaulichen.
Zitataber davon ausgehend, dass Du weisst, dass dies Javascript (bzw. ECMAscript) ist (Hint - Dateiendung .js)
Wieso sollte ich das wissen? für mich ist ftui3 ein html-code, nichts anderes. Was im Hintergrund abläuft sehe ich nicht.

ZitatZudem haettest Du, nachdem Du ja im Verzeichnis modules/ftui diese Datei ftui.binding.js offensichtlich schon gefunden hast, nochmal gucken koennen und festgestellt, dass es dort auch eine Datei namens ftui.helper.js gibt.
Gilt das gleiche wie oben, warum sollte ich irgendwelche Unterordner öffnen, prüfen oder anschauen. Für mich als Anwender ist www/ftui relevant und die Ordner/Strukturen die ich darunter für meine Pages anlege, sowie die Unterordner example und icons, ansonsten interessieren mich die anderen Ordner doch nicht.

ZitatDiese wird tatsaechlich in der _ersten_ Zeile der von Dir schon gezeigten Datei als ftuiHelper Klasse importiert:
Nach der Lektuere von Doku und/oder Tutorials haettest Du dann festgestellt, dass z.B. der Aufruf bedeutet:
"Rufe aus der Klasse ftuiHelper die Methode (aka Funktion) getPart mit den Argumenten input und value auf."
Das setzt voraus, dass man den Aufbau und die Funktion von ftui3 durchschaut hat. Mal ehrlich, was denkst du wie viele das haben - ich jedenfalls nicht.

ZitatBei weiterem aufmerksamen Lesen ohne sinnlose Wut im Bauch waere Dir dann auch aufgefallen, dass input immer der Wert des vorhergehenden Schritts der Pipe ist, und value bzw. alles, das in der Definition an erster Stelle hinter dem Gleichheitszeichen steht, beim Aufruf der Pipe in den Klammern steht, d.h. ein Argument der Funktion ist - z.B.:
const part = value => input => ftuiHelper.getPart(input, value);
Was ich daraus lese mit meinem Kenntnisstand ist folgendes: die Konstante "part" hat einen Wert und ergibt eine Eingabe - Sorry, aber was soll man damit anfangen? Abgesehen davon, dass ich die von mir gepostete Liste lediglich als Nachschlagewerk für die einzelnen Pipe-Funktionen nutze, nichts weiter. Ich weiß ja nicht mal welche Pipe-Funktionen es alles gibt oder ob das wirklich alle sind. Ich kenne ja nicht mal die genaue Bedeutung der einzelnen Pipe-Funktionen sofern diese sich nicht aus dem Wortbegriff ableiten lassen. Wie ich in einem vorhergehenden Post geschrieben hatte gibt es ja auch Variationen in denen die Pipe vor dem Device steht, doch nirgendwo eine Erklärung wann oder warum das so ist. Es wäre zum Beispiel auch wichtig zu wissen welche Pips man miteinander kombinieren kann/muss. Die Datei ist wie gesagt nur eine Auflistung als Übersicht - nicht mehr oder weniger.

Zitat<ftui-label [text]="MeinDevice.Reading | part( value )"></ftui-label>
Dabei ist der Wert von MeinDevice.Reading in input wiederzufinden.
Das ist ein Beispiel das man als nichtkenner lesen kann, da man es mit anderen HTML-Codezeilen vergleichen und daraus ableiten kann. Um mehr als solche Beispiele hatte ich im Ursprungspost ja auch nicht gebeten, oder?

ZitatIn diesem Fall gibt es mehr als ein Argument und 2 davon haben einen default Wert:
const timeFormat = (format, inputMode = 'ms', formatMode = 'lower') => input => ftuiHelper.timeFormat(input, format, inputMode, formatMode);
bzw. z.B.
<ftui-label [text]="MeinDevice.Reading | timeFormat('%H:%M')"></ftui-label>
Du schreibst es gibt 2 Argumente, doch wo im HTML-Code gibt es zwei Argumente, dort wird nur das timeFormat angegeben. Nur mal als Frage in den Raum gestellt. Wie gesagt, was im Hintergrund abläuft sehe ich nicht, nur den HTML-Code. Man kann doch von einem Anlagenbediener auch nicht verlangen die Elektromagnetischen Kraftverhältnisse und Energiegesetze der Energieerhaltung zu kennen bzw. zu lernen wenn er als Anwender eingestellt worden ist.

ZitatUm zu sehen, welche Formate fuer Datum oder Zeit zur Verfuegung stehen, solltest Du in die jeweiligen Methoden/Funktionen in der ftui.helper.js schauen - dort sind sie definiert und aus der Definition sollte klar werden, was zu nutzen ist.
Woher soll ich als Anwender wissen wo was definiert ist? Genau da sind wir beim Knackpunkt des ganzen. Wenn man das Hintergrundwissen hat, mag es alles selbsterklärend sein, doch für reine Anwender ist es das eben leider nicht. Doch das wird immer wieder als Grundwissen vorausgesetzt. Grundwissen ist aber lediglich Schulwissen, alles andere sind spezielle Kenntnisse die nicht jeder hat der sich für das Thema interessiert. Und selbst wenn man diese erlernen/nachlesen will, ist dies oftmals schwierig, da man weder weiß wonach man genau suchen muss noch wie es zu verstehen ist.

ZitatWo ich Dir recht gebe, ist, dass die Doku zu FTUI3 verbesserungswuerdig ist, allerdings ist dies offensichtlich gerade nicht setstates Prioritaet und da dies ein Hobbyprojekt ist und nicht das, was ihn und seine Familie ernaehrt, hat er jedes Recht, selber zu entscheiden, was und wieviel er hier investiert.
Da gebe ich dir vollkommen Recht und habe genau dies ja mehrfach auch geschrieben. Das einzige was ich sagte, war das dennoch Setstate der einzige ist, der eine vollständige Dokumentation erstellen oder zumindest prüfen kann, da ansonsten niemand über sein Hintergrundwissen verfügt und alle Formate/Variable/Attribute etc. etc. etc. kennt. Ich habe also lediglich die Aussage richtig gestellt, dass dies eine Aufgabe der Coummunity ist.

ZitatDamit muessen wir leben und wenn wir es nutzen wollen, selber etwas investieren und uns nicht alles von anderen vorkauen lassen.
Wir alle koennten natuerlich auch mehr investieren und helfen, diese Doku zu erstellen bzw. zu ergaenzen, aber der Tag hat bei jedem von uns nun mal nicht mehr als 24 Stunden und ich gehe davon aus, dass bei den allermeisten neben Schlafen auch Familie und Arbeit und - vielleicht - auch noch andere Hobbies auf der Agenda stehen.
Das ist alles richtig, darum hatte ich ja auch nur gefragt ob es Nachschlagewerke gibt die es sauber erklären bzw. Beispiele aus denen man Ableitungen erstellen kann. Ich will nix fertiges, sondern selber lernen, doch auch dabei braucht man eben oftmals Hilfe. Wenn dann jedoch so "dumme" Kommentare kommen die einzig nach Bessersisserei klingen, was dann? Ich habe freundlich um Hilfe gebeten und auch freundlich auf die erste Antwort reagiert und was zurückbekommen?

ZitatFTUI3 im Speziellen ist meiner Meinung nach, nicht unbedingt fuer Leute, die am PC nicht ueber "Next"-"Next"-"Finish" Installationen hinweggekommen sind und nicht bereit sind, sich intensiver damit zu beschaeftigen.
Sehe ich anders, da jeder das Recht hat zu lernen und selbst zu entscheiden was er sich zutraut. Wenn man von vornherein so denkt braucht man gar nichts neues zu beginnen und kann komplett verblöden, denn wir lernen unser ganzes Leben, egal was wir machen. Doch lernen heißt auch Hilfe bekommen. Was du beschreibst ist vergleichbar mit einem Schulzimmer ohne Lehrer in dem die Kinder einfach  hingesetzt werden und gesagt bekommen: "Nun macht mal". Blöder Vergleich aber durchaus richtig.

Was hier immer und immer wieder vergessen wird ist der Punkt, dass Lernbereitschaft nicht gleich Grundwissen ist. Ich als Beispiel behaupte von mir das ich HTML4/5 relativ gut behersche und mich auch neuen Entwicklungen anpasse. Wenn ich etwas nicht weiß, in entsprechenden Quellen/Dokumentationen nachlese oder es mir anhand von Beispielen aneigne durch vergleichen und anpassen. Das bedeutet aber nicht zwangsweise, dass ich weiß wie HTML im Hintergrund funktioniert. Das ist der Unterschied zwischen Anwender und Programmierer. Weiterhin bedeutet es nicht, dass ich automatisch weiß was js ist oder wie es funktioniert. Natürlich kennt man die Begriffe, aber ehrlich gesagt habe ich aufgrund der immer wieder aufkommenden Sicherheitslücken einen weiten Bogen um Java gemacht und immer versucht andere Lösungen zu finden.
In einer Umgebung wo aber z.B. die Groß-/Kleinschreibung schon Unterschiede macht ist es wichtig die korrekten Schreibweisen zu kennen. Ich nehme als Beispiel das oben vorkommende "timeFormat" - woher soll ich wissen, das Setstate es in seinem Code nicht "TimeFormat" oder "timeformat" genannt hat. Natürlich kann man in den Code-Dateien nachschauen, doch dafür muss man wissen wo diese sind und wie es funktioniert, womit wir wieder oben bei diesem Post sind. Das Wissen darüber ist kein Grundwissen und statt zu schreiben "Das ist doch ganz einfach und ergibt sich von selbst" wäre es sinnvoller gewesen zu schreiben, schau da und dort und versuch es zu vergleichen mit Dingen die du schon kennst.

Ich versuche grundsätzlich höflich und sachlich zu bleiben, doch wenn ich merke, dass mein Gegenüber weder Interesse noch Lust hat und sich die geschriebenen Anworten eigentlich hätte schenken können, dann reagiere ich auch entsprechend. Es schallt immer so aus dem Wald wie man hineinruft - das gilt in beide Richtungen, nicht nur in eine? Doch wenn man darauf hinweißt, dass man nichts mit den Antworten anfangen kann oder nachfragt weil man sie nicht versteht, kommt in der Regel eine von zwei Variationen als Reaktion:
1. es wird sinnfreierweise einfach wiederholt und aufgezeigt wie unfähig man ist das man es nicht versteht.
2. es wird gar nicht mehr reagiert oder mit verhöhnenden Antworten um sich geschmissen, die rein gar nichts mit dem Thema zu tun haben.

Also nichts für Ungut, vielleicht hilft das auch mal die andere Seite der Medaille zu betrachten - ich hoffe es jedenfalls. Viel zu langer Post, dennoch vielleicht ein Anfang zum beiderseitigen Verständnis.

@Dr. Boris Neubert
ZitatDas bedeutet für die Unterstützung Suchenden, dass Eigeninitiative und eine konkrete Benennung einer bestimmten Fragestellung dienlich sind, während (versteckte) Forderungen und Argumente auf die Person eher für Ablehnung sorgen.
Wie ich mehrfach und auch an anderen Stellen immer wieder betone bin ich sehr daran interessiert zu lernen und auch Eigeninitiative zu zeigen. In der Regel habe ich mindesten 2-3 Tage selbst versucht nach einer Lösung zu suchen bevor ich etwas hier im Forum schreibe. Doch das Problem ist, dass man als Fragestellender oftmals nicht mal weiß was der Fragestellung dienlich ist oder zur analyse benötigt wird. Die Bemerkung "(versteckte) Forderungen" hingegen finde ich total fehl am Platze, da im Prinzip jede Bitte als Forderung ausgelegt werden kann und die wenigsten User hier wirklich fordern. Es ist einfach nur eine Formulierung zur Maßregelung, die meiner Meinung wieder den Stellenwert der Altuser im Vergleich zu potentiellen Hilfesuchenden klarstellen soll. Ich sehe hier keine Entgleisung des Posts. Selbst auf @yersinia's Vorwürfe habe ich sachlich geantwortet. Leider passiert das eben von Seite der Hilfeleistenden weniger oft.

Dr. Boris Neubert

Zitat von: Superposchi am 25 Oktober 2024, 10:19:19@Dr. Boris Neubert
ZitatDas bedeutet für die Unterstützung Suchenden, dass Eigeninitiative und eine konkrete Benennung einer bestimmten Fragestellung dienlich sind, während (versteckte) Forderungen und Argumente auf die Person eher für Ablehnung sorgen.
Die Bemerkung "(versteckte) Forderungen" hingegen finde ich total fehl am Platze, da im Prinzip jede Bitte als Forderung ausgelegt werden kann und die wenigsten User hier wirklich fordern. Es ist einfach nur eine Formulierung zur Maßregelung, die meiner Meinung wieder den Stellenwert der Altuser im Vergleich zu potentiellen Hilfesuchenden klarstellen soll. Ich sehe hier keine Entgleisung des Posts. Selbst auf @yersinia's Vorwürfe habe ich sachlich geantwortet. Leider passiert das eben von Seite der Hilfeleistenden weniger oft.

Ich benenne explizit die Stellen, die mir (als Unbeteiligten) beim Durchlesen den Themas aufgestoßen sind:
ZitatAber wenn es dir so leicht fällt, macht es dir ja sicher nichts aus für jede Pipe einige Beispiele zusammenzustellen.
in Antwort 2
ZitatWas soll einem der Mist sagen,
in Antwort 5
Zitatsonst könntest du einfach mal ein Beispiel liefern statt diese verächtlichen Kommentare.
in Antwort 5

Mir liegt es fern, erziehen zu wollen. Ich bin Moderator. Ich erkenne Auslöser von Konflikten und ich kümmere mich darum, den Hausfrieden zu wahren. Nur ganz ganz selten greife ich ein, wie in diesem Thema, weil ich hoffe, das Forum damit besser zu machen.


Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

elle

#13
Hallo,

Zitat von: Superposchi am 25 Oktober 2024, 10:19:19@elle
Hallo und Danke für den Versuch, aber ich glaube ich muss da auch mal die andere Sichtweise veranschaulichen.
Zitataber davon ausgehend, dass Du weisst, dass dies Javascript (bzw. ECMAscript) ist (Hint - Dateiendung .js)
Wieso sollte ich das wissen? für mich ist ftui3 ein html-code, nichts anderes. Was im Hintergrund abläuft sehe ich nicht.
Sorry, aber wenn Du schreibst:
ZitatIch als Beispiel behaupte von mir das ich HTML4/5 relativ gut behersche und mich auch neuen Entwicklungen anpasse.
sollte Dir bekannt sein, dass diese Zeile
    <script src="ftui.js"></script>eine Datei mit mehr oder weniger Javascript anzieht. Und zudem kann ich mir beim allerbesten Willen nicht vorstellen, dass Javascript Dir vollkommen unbekannt ist bzw. Du nicht erkennen kannst, wann dieses ins Spiel kommt. Javascript und CSS gehoeren zu HTML wie der Deckel zum Pott - es gibt kaum eine Webseite, die ohne auskommt (gut, mit modernem CSS ist es nicht mehr ganz so "schlimm" wie frueher.

Alleine schon an der Tatsache, dass so etwas wie ein <ftui-label> kein Tag aus dem HTML Standard ist, sollte es klar sein, dass da noch etwas im Hintergrund passiert.

Womit wir dann bei dem Punkt waeren, dass Du offensichtlich nicht bereit bist, Dich selber einzulesen und einzuarbeiten und - wie von Boris geschrieben - anfaengst einzufordern.

Mit FHEM scheinst Du Dich ja auch ein wenig tiefer beschaeftigt zu haben, sonst wuerdest und koenntest Du es nicht benutzen - es ist naemlich auch nicht selbsterklaerend.

Haettest Du auch nur ansatzweise mal die Githubseite von setstate gelesen, haettest Du dieses hier gesehen
ZitatFTUI 3 uses Web Components technologies in pure ES2020 javascript.

Caution!

This version is not compatible with older fhem-tablet-ui versions.
This version is under construction.

und zum Thema, wann eine Pipefunktion vorne und wann sie hinten steht:
ZitatExample for input (FHEM reading -> function() -> HTML attribute):

<ftui-label [text]="AgroWeather:state | part(4) | toInt() | multiply(2) | round(1) "></ftui-label>
Example for output (HTML attribute -> function() -> FHEM reading):

 <ftui-colorpicker (hex)="replace('#','') | HUEDevice6:rgb"></ftui-colorpicker>

Exkurs - ein letzter Versuch, Dir zu helfen, den Weg zur Selbst(erkenntnis|doku) zu finden:
<ftui-label [text]="AgroWeather:state | part(4) | toInt() | multiply(2) | round(1) "></ftui-label>= Erzeuge ein ftui-label mit
a. Text aus dem Reading state des Devices AgroWeather (=input fuer const part ...)
b. davon der 4. Teil (4=value in part( value ) )
c. konvertiere nach Integer (input ist Ergebnis der Pipe part)
d. multipliziere mit 2 ( 2=value von Multiply, input ist Ergebnis von toInt() )
e. Runde auf eine Stelle ( 1=value, input = Ergebnis von multiply(2)

Im zweiten Beispiel wird zunaechst im im Colorpicker eingestellten Wert # durch nichts ersetzt und dann in das Device HUEDevice6 in das Reading rgb geschrieben.

Die von Dir gefundenen Pipes ( aka Funktionen ) sind die von setstate vorgegebenen - man kann sich auch eigene definieren im <script></script> Teil einer HTML Seite, z.B.:
const        abs =                () => input => Math.abs(Number(input));
const replaceAll = ( find, replace ) => input => String(input).replaceAll(find, replace);
const    ucFirst =                () => input => input.charAt(0).toUpperCase() + input.slice(1);

Fuer mich sieht es so aus, als wolltest Du Dich nicht wirklich selber mit der Thematik beschaeftigen und erwartest von anderen, bei denen es hoechstwahrscheinlich nicht um keine Lust zu dokumentieren geht, sondern darum, dass sie hier einen in ihrem und nicht Deinem Ermessen liegenden Teil ihrer Freizeit investieren und dieser anscheinend nicht Deinem Anspruch genuegt, Deine Probleme zu loesen.

Du hast hier einige Hinweise bekommen, wo Du mehr Info zu Javascript und/oder FTUI3 Dir erarbeiten (!) kannst - warum bist Du offensichtlich hier nicht dazu bereit?
Zitat... auch neuen Entwicklungen anpasse. Wenn ich etwas nicht weiß, in entsprechenden Quellen/Dokumentationen nachlese oder es mir anhand von Beispielen aneigne durch vergleichen und anpassen

FHEM und im Speziellen FTUI3 erfordern in weiten Teilen genau das - die Bereitschaft, sich tiefer mit der Materie auseinanderzusetzen - es ist keine Klickibuntiumgebung, in der man sich nach Belieben alles zusaemmenbastelt. Auch gibt es hier niemanden, der nur darauf wartet, Deine Probleme fuer Dich zu loesen. Die allermeisten - wenn nicht gar alle - sind bereit, Dir Hilfestellung zu geben, aber das heisst nicht, dass sie alle Deine Probleme fuer Dich loesen werden - vor allem dann nicht, wenn man die Dinge nachlesen oder sich mit ein wenig Bereitschaft erarbeiten kann.

Wenn das nicht das Richtige fuer Dich ist, musst Du in den sauren Apfel beissen und Dich ein wenig einarbeite, eine andere UI wie FUIP oder FTUI2 (ich kenne mich mit den anderen ausser der Standardoberflaeche nicht wirklich aus) fuer FHEM verwenden oder Dich fuer Deine Heimautomation fuer eine andere Loesung entscheiden.

Gruss

/elle

Superposchi

@Dr. Boris Neubert
Also ich lese da nirgendwo eine (versteckte) Forderung, lediglich Verachtung und die Preisgabe, dass ich diese Antworten auf die ich reagiert habe und deren Verfasser, nur lächerlich finde. Es ist eine sarkastische Verhöhnung. Ob das angebracht ist/war steht vielleicht auf einem anderen Blatt. Aber sorry wenn ich das jetzt schreibe, wann haben Sie das letzte Mal das Wort Forderung nachgeschlagen? Ich verstehe unter Forderung jedenfalls etwas völlig anderes.

ZitatMir liegt es fern, erziehen zu wollen. Ich bin Moderator. Ich erkenne Auslöser von Konflikten und ich kümmere mich darum, den Hausfrieden zu wahren. Nur ganz ganz selten greife ich ein, wie in diesem Thema, weil ich hoffe, das Forum damit besser zu machen.
Dann frage ich mich wie es immer und immer wieder zu Kommentaren wie beispielweise "Dann hole ich mir mal Popkorn" ohne jeden weiteren Text direkt als ersten Antwortpost in meinen Beiträgen geben kann.

@elle
Zuallererst einmal einen kleinen Hinweis, bitte versuche nicht ein Zitat in einem Zitat in einem Zitat zu posten, meine Augen und mein Verstand würden es dir danken. Denn diese Verschachtelung ist mehr als unüberscihtlich.

Zitatsollte Dir bekannt sein, dass diese Zeile eine Datei mit mehr oder weniger Javascript anzieht.
Natürlich kenne ich den Begriff Javascript, doch wie bereits geschrieben, habe ich immer einen weiten Bogen darum gemacht weil es weder sicher noch ein fester Bestandteil von HTML ist. PHP wird auch in Verbindung mit HTML genutzt, ist aber deshalb kein Bestandteil davon. Genauso ist es mit CSS oder Javascript, Beides ist kein zwingender Bestandteil.

ZitatAlleine schon an der Tatsache, dass so etwas wie ein <ftui-label> kein Tag aus dem HTML Standard ist, sollte es klar sein, dass da noch etwas im Hintergrund passiert.
Natürlich weiß ich das da was im Hintergrund passiert, doch ich muss nicht wissen was und wie. Das ist doch der Punkt auf dem ich die ganze Zeit rumreite. Als Anwender muss ich nur wissen wie der ftui-label  - Tag anzuwenden ist, welche Attribute und Anpassungsmöglichkeiten er hat. Wie das im Hintergrund gelöst ist spielt dagegen keine Rolle. Auch wenn das jetzt blöd klingt, aber ich muss auch nicht wissen wie der Mechanismus im Klokasten funktioniert, es reicht das ich weiß, dass da Wasser fließt wenn ich den Heben/Taster betätige. Ist jetzt überzogen, aber anders wird man hier wohl anscheinend nicht verstanden.

ZitatWomit wir dann bei dem Punkt waeren, dass Du offensichtlich nicht bereit bist, Dich selber einzulesen und einzuarbeiten und - wie von Boris geschrieben - anfaengst einzufordern.
Mit FHEM scheinst Du Dich ja auch ein wenig tiefer beschaeftigt zu haben, sonst wuerdest und koenntest Du es nicht benutzen - es ist naemlich auch nicht selbsterklaerend.
Sorry, aber genau solche Post stoßen bei mir sehr übel auf. Denn weder kennst du mich, noch weißt du was ich vorher gemacht habe bevor ich hier gepostet habe. Und alleine die Tatsache, dass ich die oben verlinkte Webseite gefunden habe und kenne zeigt wohl genau das Gegenteil. Denn wenn es so wäre wie hier behauptet wird, könnte ich diese wohl kaum kennen. Was FHEM angeht habe ich genau deshalb auch hier genug Schwierigkeiten wie viele meiner anderen Threats wohl beweisen. Und wie bereits oben zu Boris geschrieben ist um Hilfe bitte keine Forderung, denn diese setzt Begriffe wie Müssen, deine Pflicht, etc. voraus.

ZitatHaettest Du auch nur ansatzweise mal die Githubseite von setstate gelesen, haettest Du dieses hier gesehen
Ich habe die Seite wahrscheinlich bereits 200x gelesen, doch ich gebe zu, ich beschränke mich dabei auf das was der Umsetzung dient und nicht auf irgendwelche Kommentare. Denn genau wie hier immer behauptet wird ist auch meine Zeit nicht allumfassend, weshalb ich mich auf das konzentriere was relevant ist.

Zitatund zum Thema, wann eine Pipefunktion vorne und wann sie hinten steht:
Habe ich genau dieses selbst vor wie vielen Posts geschrieben? Ich sagte nur, dass dies auss der Webseite mit der Aufzählung der Pipes nicht hervorgeht.

ZitatFuer mich sieht es so aus, als wolltest Du Dich nicht wirklich selber mit der Thematik beschaeftigen und erwartest von anderen, bei denen es hoechstwahrscheinlich nicht um keine Lust zu dokumentieren geht, sondern darum, dass sie hier einen in ihrem und nicht Deinem Ermessen liegenden Teil ihrer Freizeit investieren und dieser anscheinend nicht Deinem Anspruch genuegt, Deine Probleme zu loesen.
Dann Frage ich mich wie und warum ich mir überhaupt die Arbeit mache die von mir genannten Webseiten, Beispiele und Rückfragen auf Inspirationen hier zu posten. Sorry, aber genau für solche Komentare fehlt mir jegliches Verständnis, denn weder du noch sonst jemand der nicht die ganze Zeit neben mir sitzt weiß was ich alles versucht und getan habe bzw. was ich vorher bereits alles versucht habe. Ich finde es traurig, dass immer wieder Unterstellungen geäußert werden die absolut nicht haltbar oder gerechtfertigt sind. Der Punkt mit der Freizeit gilt in beide Richtungen. Auch ich habe oft besseres zu tun als mich mit FHEM und/oder FTUI auseinander zusetzen und dass man nie so tief in die Materia einsteigt wenn man sich alle paar Monate damit beschäftigt wie jemand der sich seit Jahren regelmäßig damit beschäftigt ist auch klar.

ZitatDu hast hier einige Hinweise bekommen, wo Du mehr Info zu Javascript und/oder FTUI3 Dir erarbeiten (!) kannst - warum bist Du offensichtlich hier nicht dazu bereit?
Und wo war das? Ich habe weder den Namen einer Doku, noch eine Webseite noch einer Erklärung gesehen; nicht mal Suchbegriffe mit denen man in Google weiterkommt. Vielleicht bin ich aber auch einfach blind!

ZitatDie allermeisten - wenn nicht gar alle - sind bereit, Dir Hilfestellung zu geben, aber das heisst nicht, dass sie alle Deine Probleme fuer Dich loesen werden
Da habe ich leider oft genug vollkommen andere Erfahrungen gemacht (die auch von vielen anderen schon bestätigt wurden). Von Usern die besserwisserisch belehren wollen bis hin zu Verhönungen. Wenn das deine Vorstellung von Hilfestellung ist, leben wir wohl in verschiedenen Welten. Es hat schon seine Gründe, dass mehrere Portale, die sich in der Vergangenheit mit FHEM beschäftigt haben von Fhem und speziell diesem Forum hier abgewendet haben und ganz offen kommunizieren wegen der arroganten Art hier nicht mehr aktiv zu sein.

ZitatWenn das nicht das Richtige fuer Dich ist, musst Du in den sauren Apfel beissen und Dich ein wenig einarbeite, eine andere UI wie FUIP oder FTUI2 (ich kenne mich mit den anderen ausser der Standardoberflaeche nicht wirklich aus) fuer FHEM verwenden oder Dich fuer Deine Heimautomation fuer eine andere Loesung entscheiden.
Ich finde solche Kommentare immer derart zum Lachen, eigentlich müsste ich mich schon Totgelacht haben. Wenn du auch nur die geringste Ahnung hättest wie umfangreich sowohl meine FHEM-Installation als auch meine Bedienoberfläche bereits jetzt ist würden viele hier vermutlich nicht mehr lachen. Und vor FTUI3 habe ich ca. 5 Jahre eine voll funktionsfähige FTUI2-Oberfläche betrieben, die ich mir komplett anhand der Beispiel und vernünftigen Dokumentation zusammengebastelt habe. Aber ich habe es nicht nögig mir selbst auf die Schulter zu klopfen, darum reite ich nicht auf so was rum. Doch genau weil ich immer neues lernen und ausprobieren will kommt es nun mal dazu, dass man nach Hilfe fragt. Doch echte Hilfe bekommt man hier sehr selten und konkret eine Frage beantworten schaffen hier noch weniger. Hauptsache man kann als allererstes schreien "Die Fragestellung ist zu ungenau".

So, ich hoffe ich bin nicht zu unsachlich geworden, doch leider bist auch du nicht in der Lage sich in die Lage zu versetzen mal die andere Seite der Medaille anzusehen.


elle

Zitat von: Superposchi am 27 Oktober 2024, 00:28:53@Dr. Boris Neubert
Also ich lese da nirgendwo eine (versteckte) Forderung, lediglich Verachtung und die Preisgabe, dass ich diese Antworten auf die ich reagiert habe und deren Verfasser, nur lächerlich finde. Es ist eine sarkastische Verhöhnung. Ob das angebracht ist/war steht vielleicht auf einem anderen Blatt. Aber sorry wenn ich das jetzt schreibe, wann haben Sie das letzte Mal das Wort Forderung nachgeschlagen? Ich verstehe unter Forderung jedenfalls etwas völlig anderes.

In meinem Beruf helfe ich erfolgreich auf diese Art und Weise (Hilfe zur Selbsthilfe - aber niemals vorkauen) Anwendern seit fast 25 Jahren, aber noch nie hat irgendeiner dieser Anwender zugegeben, mich oder andere Helfende zu verhoehnen.

Und nach wie vor scheinst Du nicht in der Lage oder willens zu sein, die Hilfestellung, die man Dir gibt, aufzugreifen und von da aus selbstaendig weiter zu machen.

Fuer mich ist dieses Thema daher nun beendet.

Superposchi

Ist auch besser so, denn ich lese in den ganzen Gequatsche NICHT EINE Hilfestellung, nicht einen Hinweis auf eine Quelle oder ein Dokument. Keine Ahnung was hier unter Hilfestellung verstanden wird, offenbar aber was anders als in der restlichen Welt.

Und ja, solche Kommentare wie von grossmaggul kann man nur verhöhnen, besonders wenn trotz nachfrage nur das gleiche noch mal wiederholt wird.

grossmaggul

Jetzt mach mal halblang, ich war halt ein paar Tage nicht zu Hause und habe deshalb nicht geantwortet, ich habe auch noch ein Leben neben fhem.

Allerdings verspüre ich jetzt auch nicht mehr das Verlangen Dir zu helfen, hier wurden Dir einige Hilfestellungen gegeben, Du zeigst aber keinerlei Eigeninitiative und verlangst vorgefertigte Lösungen und wirst dann auch noch pampig, wenn das nicht zu Deiner Zufriedenheit und prompt erledigt wird.
FHEM auf Debian 12 Bookworm Server, Supermicro Core2Duo Board, 2 TB HD RAID 1, 8GB RAM, 2 x nanoCUL868, 1 x nanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1,WLED

Superposchi

Jetzt pass mal auf,
1. ich habe die Kommentare wegen deiner Antworten geschrieben, nicht weil keine Rückmeldung mehr kam.
2. sind meine Kommentare vollkommen zutreffend, da deine Antworten bestenfalls als selbstverherrlichend zu bezeichnen sind ala "Ich kanns ja, bist du so doof?"
3. habe ich die Kommentare erst gemacht, nachdem du auf eine einfache Rückfrage nur das gleiche nochmal geschrieben hast.

Und jetzt noch mal in allerdeutlichkeit: Wo wurde irgendeine Hilfestellung von dir geliefert. Du hast weder ein Beispiel, noch eine Quelle oder eine Doku benannt mit der ich hätte arbeiten können. Das einzige was du geschrieben hast war: "Ach ist doch alles selbsterklärend".

Und ehrlich gesagt interessiert es mich einen feuchten Dr*** was du verspürst. Nach den Antworten ist mir längst klar, dass von dir keine Hilfe zu erwarten ist.

Dr. Boris Neubert

Thema wird geschlossen.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!