Listen-(Agenda)-Widget aus CALView

Begonnen von onkeldittmeyer, 13 November 2019, 00:56:11

Vorheriges Thema - Nächstes Thema

OdfFhem

Ich bin mir ziemlich sicher, dass die fehlerhafte Darstellung an den (vermutlich) mehrtägigen Terminen liegt.

Aus diesem Grund habe ich die bisherige Verarbeitungstheorie für notoday und notomorrow im Modul abgeändert. In Anlehnung zu ignorelaterthan gibt es jetzt auch ein Attribut ignoreolderthan - Namen inspiriert durch den FHEM-Typ Calendar. Grundsätzlich bleibt aber die Frage offen, wie man denn bei einer solch selektiven Kalenderdarstellung überhaupt mit mehrtägigen Terminen umgeht. Momentan interessiert ja nur der Beginn eines Termines; das Ende eines Termines spielt keine Rolle.

Das Ergebnis zu einem erweiterten Test (jeder Termin dauert 4 Tage) ist im Anhang zu finden:

  • weißer Hintergrund --- Termine, die vor heute begonnen haben und noch andauern
  • roter Hintergrund --- Termine, die heute beginnen
  • gelber Hintergrund --- Termine, die morgen beginnen
  • grüner Hintergrund --- Termine, die übermorgen beginnen
  • grauer Hintergrund --- Termine, die nach übermorgen beginnen, aber nicht in mehr als sieben Tagen
  • schwarzer Hintergrund --- Termine, die erst in mehr als sieben Tagen beginnen
Demnach sollte mit der neuen Widget-Datei auch bei Dir die Anzeige funktionieren.


Bitte die angehängte Widget-Datei aktivieren und testen ...

onkeldittmeyer

Moin,

ich war die letzten Tage ziemlich eingebunden, tut mir Leid für die späte Antwort.

Erstmal Danke für Deine Analyse.  So ganz klar ist mir der Grund, aus dem es nicht funktioniert, tatsächlich nicht.

Die von Dir angesprochenen Termine 1-5 sind offenkkundig alte Termine, was aber insofern nicht schlimm sein dürfte, als das die ja gar nicht angezeigt werden.

Im Augenblick habe ich aber offenbar ein generelles Problem mit dem Kalender-Device. Es werden keine neuen Termine mehr geladen, in FHEM sind nur noch alte Termine. Ich werde noch wahnsinnig.

onkeldittmeyer

So, ich wieder. Habe heute Abend die Zeit gefunden, an FHEM herumzufummeln. Irgendwo in einem Kalender hatte ich "cutoffolderthan" mit 0d angegeben. Jetzt habe ich es auf 0 geändert und offenbar sind die alten Termine jetzt verschwunden.
Ich glaube, der Kalender war zu voll mit alten Terminen, so dass keine neuen mehr geladen werden konnten.

Jetzt habe ich jedenfalls "übermorgen" wieder eingebaut. Es scheint zu funktionieren:


  <header class="bg-gray white small">Übermorgen</header>
            <div data-type="calview"
                 data-device="Kalender"
                 data-get="all"
                 data-ignorelaterthan="2"
                 data-start="notomorrow"
                 data-ignoreolderthan="0"
                 data-max=11
                 data-detail='["btime","summary"]'
                 data-detailwidth='["20","80"]'
                 data-class="left-align white large">
            </div>


Was ich nicht verstehe: Wofür ist data-ignorelaterhan? data-start "notomorrow" scheint zu funktionieren.


OdfFhem

@onkeldittmeyer

Neue Attribute:

  • data-ignoreolderthan legt fest, ab wann Termine dargestellt werden
  • data-ignorelaterthan legt fest, bis wann Termine dargestellt werden
Die Angaben beziehen sich jeweils auf das aktuelle Datum und werden in Tagen gemacht ...

Aus Kompatibilität werden data-get mit den Werten 'today' bzw. 'tomorrow' sowie data-start mit den Werten 'notoday' bzw. 'notomorrow' weiterhin unterstützt; ihr "Sinn" wird aber - soweit erforderlich - auf die neuen Attribute übertragen.

In Deinem Beispiel hat die Angabe von data-ignoreolderthan keine Auswirkung, da die Angabe von data-start automatisch data-ignoreolderthan festlegt.

onkeldittmeyer

Hi!

Kann ich so nicht bestätigen. Ohne data-start, also so:


<header class="bg-gray white small">Übermorgen</header>
            <div data-type="calview"
                 data-device="Kalender"
                 data-get="all"
                 data-ignorelaterthan="2"
<!--             data-start="notomorrow" -->
                 data-ignoreolderthan="0"
                 data-max=11
                 data-detail='["btime","summary"]'
                 data-detailwidth='["20","80"]'
                 data-class="left-align white large">
            </div>


funktioniert es nicht mehr.

Mir wird dann unter "Übermorgen" in der FTUI-Seite im Widget nur Texmüll angezeigt (der u.a. auch Beschreibungen aus dem Kalender enthält). Mit data-start funktioniert es wie es soll.

OdfFhem

#35
@onkeldittmeyer

Interessanter Effekt - liegt aber wohl daran, dass man innerhalb eines Tags mit dem ansonsten gebräuchlichen Auskommentieren anfängt. Dies ist in HTML nicht so vorgesehen und das Ergebnis folglich nicht wirklich vorhersehbar. Generell kann man ja nicht direkt innerhalb eines Tags ein anderes Tag starten ...

Ein Attribut (ohne Rauslöschen) unwirksam zu machen, gelingt z.B. indem man aus data-start einfach data---start o.ä. macht; damit hat es keine Bedeutung mehr.

Anmerkung zu Deinem Beispiel:
Ist data-start unwirksam, bleibt der übergebene Wert vom Attribut data-ignoreolderthan erhalten; "0" bedeutet aktuelles Datum. In Übermorgen würden dann Termine von heute - übermorgen ausgegeben. data-start="notomorrow" hingegen hätte das Attribut data-ignoreolderthan auf "2" gesetzt, so dass in Übermorgen Termine von übermorgen - übermorgen angezeigt würden.

onkeldittmeyer

Frohe Weihnachten!

Ah, OK. Wußte ich nicht. Ich bin mehr so der "Heimwerker" unter den Anwendern hier. Leute Fragen, die Ahnung haben (in dem Fall hier also Dich), rummurksen, wenn es schief geht, noch mal fragen.
An dieser Stelle also: Danke für Deine Geduld!

Mit


<header class="bg-gray white small">Übermorgen</header>
            <div data-type="calview"
                 data-device="Kalender"
                 data-get="all"
                 data-ignorelaterthan="2"
                 data---start="notomorrow"
                 data-ignoreolderthan="2"
                 data-max=11
                 data-detail='["btime","summary"]'
                 data-detailwidth='["20","80"]'
                 data-class="left-align white large">
            </div>


geht es genauso wie mit dem data-start.

Überlebt die Sache auch ein FHEM-Update, oder muß ich die Widget-Datei dann nochmal auf's Pi kopieren?

OdfFhem

Natürlich auch von mir "Frohe Weihnachten!".



Die Überlebensfrage bzgl. FTUI-Update würde ich aktuell ganz klar mit einem NEIN beantworten, da es aus meiner Sicht keine konsequente Updatepolitik für Fremd-Widgets gibt. Man kann was vorschlagen, ob und wann es dann tatsächlich übernommen wird, keine Ahnung ...

Daher bleiben eigentlich nur alternative Taktiken, um nicht ständig nach einem Update Korrekturarbeiten vornehmen zu müssen:

  • Widget-Datei via exclude_from_update-Attribut vom update ausnehmen
  • Widget umbenennen (Datei alleine umbenennen reicht nicht)

Derzeit nutze ich bei mir die zweite Theorie, denn so erhält man zumindest weiterhin 1:1 den aktuellen FTUI-Stand.

onkeldittmeyer

Die erste Variante klingt irgendwie kompliziert, die zweite ist da vielleicht einfacher.
Benne ich dann zum Beispiel die Datei "widget_calview.js" in "widget_kalguck.js" um und mache in der index.html aus >data-type="calview"< dann >data-type="kalguck"<?

OdfFhem

#39
Folgendes sollte für die erste Variante ausreichen:

attr global exclude_from_update widget_calview.js

Immer vorausgesetzt, Du hast bisher kein exclude_from_update-Attribut in global gesetzt.


Die zweite Variante erfordert ein umbenanntes und angepasstes Widget-File; ebenso muss die Widget-Definition in der HTML-Datei angepasst werden ... also eindeutig aufwendiger als die erste Variante ... man erzeugt quasi eine Parallelwelt. Ich habe trotzdem mal eine kalguck-Variante angehangen ...

onkeldittmeyer

Ich habe mal die erste Variante getestet und hoffe, dass das so funktioniert. Das mit der Parallelwelt klingt etwas zu kompliziert.
Danke.

OdfFhem

Ob die erste Variante funktionieren würde, kannst Du mit "update check" ausprobieren: Folgendes sollte dabei angezeigt werden:

fhemtabletui
List of new / modified files since last update:
.
UPD www/tablet/js/widget_calview.js (excluded from update)
.

onkeldittmeyer

Ich habe eben ein Update gemacht. Die FTUI-Seite sieht jedenfalls unverändert aus. Allerdings habe ich in den nächsten Tagen auch keine Termine.

Auf "update check" bekomme ich

"Downloading https://fhem.de/fhemupdate/controls_fhem.txt
nothing to do..."

Init

Hallo zusammen,

ist damit zu rechnen, dass die neuen Funktionalitäten irgendwann im normalen Update zur Verfügung stehen?

VG
Marc

OdfFhem

@Init

Das Projekt FTUI in der derzeitigen Form ist quasi im Endstadium und gilt folglich als "eingefroren"; derzeit ist eine komplett neue Version in der Entstehungsphase.

Sollte Interesse bestehen, kann ich das angesprochene Modul mit seinen neuen Funktionalitäten hier zum Download bereitstellen und die exclude_from_update-Theorie empfehlen ...