Listen-(Agenda)-Widget aus CALView

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

Vorheriges Thema - Nächstes Thema

OdfFhem

@onkeldittmeyer

Zitat von: onkeldittmeyer am 25 November 2019, 10:28:49
"hidelater 2d" bedeutet offenbar, dass alle Termine, die mehr als 48 Stunden in der Zukunft liegen versteckt werden. Das führt dann dazu, dass, wenn man morgens um 10.00 Uhr auf das Widget schaut, die Termine, die übermorgen nach 10.00 Uhr im Kalender stehen, nicht angezeigt werden.

hideLaterThan basiert auf einer relativen Betrachtung. Hängt damit also unmittelbar vom Aktualisierungszeitpunkt/intervall ab; wann man auf den Kalender schaut, sollte egal sein - wann das Calendar-FHEM-Device aktualisiert wird, ist wichtig. Ich aktualisiere z.B. in der Regel einmal pro Tag via at-Kommando gegen/nach Mitternacht. Für Kalender, die viel mit kurzfristigen Terminen zu tun haben, wäre die Aktualisierungsrate zu gering. Ganztägige Termine sind aber auf diese Art wahrscheinlich auch nicht wie gewünscht abzugrenzen.

Zitat von: onkeldittmeyer am 25 November 2019, 10:28:49
Gibt es eine Möglichkeit, dem Widget beizubringen, nur die Termine zu verstecken, die nach dem zweiten Tag stattfinden?

Das Widget hängt unmittelbar vom CALVIEW-FHEM-Device ab; dort gibt es derzeit "heute", "morgen" und "alle"; somit gibt es zunächst einmal keine offensichtliche Möglichkeit. Eine verbleibende Möglichkeit wäre beispielsweise, ein neues FTUI-Widget-Attribut einzuführen ...

onkeldittmeyer

Zitat von: OdfFhem am 25 November 2019, 12:36:40
@onkeldittmeyer

hideLaterThan basiert auf einer relativen Betrachtung. Hängt damit also unmittelbar vom Aktualisierungszeitpunkt/intervall ab; wann man auf den Kalender schaut, sollte egal sein - wann das Calendar-FHEM-Device aktualisiert wird, ist wichtig.
(...)

Naja, ich aktualisiere schon deutlich häufiger. Und es tritt dann eben genau der Effekt auf, dass wirklich 48 Stunden als Maßstab genommen wird. Schade eigentlich, aber vielleicht wird es ja  noch geändert.

Bis dahin werde ich entweder damit leben müssen oder eben auf "Übermorgen" verzichten. So ist es etwas irreführend.

Aber Danke für die Aufklärung. Kann man irgendwo so eine Funktion freundlich nachfragen? Vielleicht wäre es ja kein Aufwand, sowas im Rahmen eines möglichen Updates einzubauen....

OdfFhem

Zitat von: onkeldittmeyer am 25 November 2019, 22:45:54
Kann man irgendwo so eine Funktion freundlich nachfragen?

Frage ist jetzt, ob es Dir ausschließlich um einen Änderungswunsch in FTUI geht?

Beim widget_calview.js habe ich aktuell die Modulpflege von chris1284 übernommen und könnte Dir ein neues Attribut anbieten; vielleicht ist der Wunsch sogar für weitere Anwender interessant. Aktuell denke ich z.B. an data-ignoreLaterThan, sollte aber irgendjemand einen besseren Namen haben ...

Angedachte Logik für das neue Attribut:

  • nur positive Werte werden als Referenzwert übernommen
  • Referenzwert wird nur im Modus all ausgewertet
  • ein Referenzwert bezieht sich immer auf das aktuelle Datum - unabhängig von der Uhrzeit
  • Differenz in Tagen zwischen Termindatum und aktuellem Datum wird gebildet; ist der Differenzwert > Referenzwert, dann wird der Termin ignoriert

Beispiel für das aktuelle Datum 26.11.2019:

26.11.2019 minus 26.11.2019 ergibt 0 Tage; kann also sinnvollerweise niemals ignoriert werden
27.11.2019 minus 26.11.2019 ergibt 1 Tag; wird für Referenzwert 0 ignoriert
28.11.2019 minus 26.11.2019 ergibt 2 Tage; wird für Referenzwerte 0,1 ignoriert
29.11.2019 minus 26.11.2019 ergibt 3 Tage; wird für Referenzwerte 0,1,2 ignoriert
.
.
.




Sollte man eine solche Funktionalität auch direkt in FHEM benötigen, dann kommt der Ansprechpartner auf die konkrete Frage an:

Für FHEM-Devices vom Typ "Calendar" gilt:
Modulverantwortlicher: neubert
Anfragen im Forum: Unterstützende Dienste/Kalendermodule

Für FHEM-Devices vom Typ "CALVIEW" gilt:
Modulverantwortlicher: chris1284
Anfragen im Forum: Unterstützende Dienste/Kalendermodule



P.S.: Es gibt wohl kein englisches Wort für übermorgen - Betonung auf ein Wort. Unter Umständen schon die erste Hürde ...

onkeldittmeyer

Also ich fände die Idee super. Die Variante halte ich sogar für besser als eine direkte Implementierung in FHEM, weil man im HTML-Code direkt für alle Kalender ein entsprechendes Attribut setzen kann.

Wir können ja ein Wort erfinden: "overtommorow"? ;-)

Naja, Deutsch ist schon präziser. Aber ich will es als Nicht-Mutterprachler nicht lernen müssen. Außerdem nützt uns das ja für das Problem hier nichts.

OdfFhem

#19
@onkeldittmeyer

Ich habe widget_calview.js um das Attribut data-ignorelaterthan erweitert.

Folgende Abweichungen zum "Plan" gelten:

  • Auch negative Werte werden als Referenzwert übernommen; für mehrtägige Termine nutzbar
  • Referenzwert wird in allen Modi ausgewertet

Folgende Einstellung sollte alle Termine nach übermorgen ignorieren:

data-ignorelaterthan="2"


Bitte die angehängte Datei aktivieren und testen ...
Neue Datei weiter unten ...

onkeldittmeyer

Hallo,

bin etwas spät dran. Danke für Deine Arbeit. Ich nehme an, ich überschreibe die im Verzeichnis "js" enthalte Datei einfach mit Deiner?

OdfFhem

@onkeldittmeyer

Genau; für den Test reicht das vollkommen.

onkeldittmeyer

Hhm,

mit


<div data-type="calview"
                 data-device="Kalender"
                 data-get="all"
                 data-max=11
                 data-ignorelaterthan="2"
                 data-start="notomorrow"
                 data-detail='["btime","summary"]'
                 data-detailwidth='["20","80"]'
                 data-class="left-align white normal">
            </div>


bekomme ich folgende Fehlermeldung:

"Error widget_calview.js:204 TypeError: elem.getReading(...)val is undefined"

Wenn ich die Zeile entferne, geht es wieder.

OdfFhem

@onkeldittmeyer

Erscheint mir nachvollziehbar, da bei Dir kein bdate in data-detail enthalten ist. Wenn man nur einen Tag darstellt, durchaus plausibel.

Da muss ich wohl noch mal nachbessern ...

onkeldittmeyer

Ich verstehe zwar das Problem nicht, habe aber verstanden, dass ich nix verkehrt gemacht habe. ;-)

OdfFhem

#25
@onkeldittmeyer

Du hast tatsächlich nix verkehrt gemacht, sondern ich habe (mindestens) einen Fall nicht berücksichtigt. Das Problem in diesem Fall ist eigentlich ganz einfach: Du hast das Feld bdate nicht in Dein data-detail integriert, so dass das Feld zunächst einmal nicht im FTUI zur Verfügung steht. Das Feld bdate wird aber zwingend benötigt, da an diesem Feld festgemacht wird, ob der Termin ignorert werden soll oder nicht. Jetzt sorgt das Modul in einem solchen Fall dafür, dass das Feld bdate trotzdem zur Verfügung gestellt wird.

Ich habe das Modul noch einmal für diesen "Spezialfall" überarbeitet.

Bitte die angehängte Datei aktivieren und testen ...
Neue Datei weiter unten ...

onkeldittmeyer

Der Fehler wird nicht mehr angezeigt. Allerdings sehe ich jetzt unter "übermorgen" alle Termine bis zu datamax, also sogar die von gestern.

OdfFhem

#27
@onkeldittmeyer

Seltsam, kann ich nicht nachvollziehen. Ich habe einmal ein Beispiel mit 6 verschiedenen Ansichten eines CALVIEW-Devices gemacht und dies liefert bei mir das gewünschte Ergebnis (s. angehängten Screenshot).

Kannst Du mal folgendes Kommando (<Name vom CALVIEW-Device> ersetzen) in die FHEM-Kommandozeile eingeben und das Ergebnis hier einstellen?


list NAME=<Name vom CALVIEW-Device> c-term c-today c-tomorrow t_001_bdate t_002_bdate t_003_bdate t_004_bdate t_005_bdate t_006_bdate t_007_bdate t_008_bdate t_009_bdate t_010_bdate t_011_bdate t_012_bdate t_013_bdate t_014_bdate t_015_bdate


Weiterhin wären Deine verwendeten calview-Widget-Definitionen aus der HTML-Datei interessant.

onkeldittmeyer

Hallo. Dein Befehl führt zu folgender Ausgabe:

Kalender             2019-12-10 16:10:00   c-term          20
                     2019-12-10 16:10:00   c-today         2
                     2019-12-10 16:10:00   c-tomorrow      3
                     2019-12-10 16:10:00   t_001_bdate     25.11.2019
                     2019-12-10 16:10:00   t_002_bdate     25.11.2019
                     2019-12-10 16:10:00   t_003_bdate     29.11.2019
                     2019-12-10 16:10:00   t_004_bdate     09.12.2019
                     2019-12-10 16:10:00   t_005_bdate     09.12.2019
                     2019-12-10 16:10:00   t_006_bdate     10.12.2019
                     2019-12-10 16:10:00   t_007_bdate     10.12.2019
                     2019-12-10 16:10:00   t_008_bdate     11.12.2019
                     2019-12-10 16:10:00   t_009_bdate     11.12.2019
                     2019-12-10 16:10:00   t_010_bdate     11.12.2019
                     2019-12-10 16:10:00   t_011_bdate     12.12.2019
                     2019-12-10 16:10:00   t_012_bdate     12.12.2019
                     2019-12-10 16:10:00   t_013_bdate     12.12.2019
                     2019-12-10 16:10:00   t_014_bdate     12.12.2019
                     2019-12-10 16:10:00   t_015_bdate     13.12.2019


OdfFhem

#29
 c-today mit 2 Einträgen sieht gut aus.
c-tomorrow mit 3 Einträgen sieht auch gut aus.

Auffällig sind die Termine #1 - #5; sind das mehrtägige Termine oder dürften die eigentlich gar nicht mehr vorhanden sein?