[PATCH] - 95_YAAHM.pm - Kalendereinträge formatieren

Begonnen von Florian St., 06 November 2020, 21:12:20

Vorheriges Thema - Nächstes Thema

Florian St.

Hallo phenning,

ich hatte mit dem YAAHM-Module ein Problem mit meinen Einträgen im Google Kalender aus specialDevices.

       
  • Es wurde bei mir gar kein Eintrag angezeigt
  • Es konnte nicht der gesamte Text angezeigt werden
Nach etwas Analyse lag das entgegen deiner Angabe (https://forum.fhem.de/index.php/topic,75206.msg721266.html#msg721266) doch am Format im Kalender.
Ich hatte dort noch einen Ort hinterlegt. Dieser war auch mit Leerzeichen getrennt. Das Ergebnis, welches beim Format "full" vom Calendar-Device zurückkam war zum Beispiel:
bbpvc20iulu206qciq3################  upcoming  18.01.2021 00:00-19.01.2021 00:00 Papierabfuhr  Straße Hausnummer, Ort
Nachdem dieses bei den Leerzeichen getrennt wurde hat die Regel if( int(@chunks)>=7 ){ fälschlicherweise angeschlagen und auf den falschen Index referenziert. Nachdem ich dies mit einem Workaround behoben hatte wurden einige Termine nicht vollständig angezeigt. So gab es zum Beispiel danach den Eintrag "Gelber" aus dem Termine "Gelber Sack", da nur Bezeichnungen ohne Leerzeichen verwendet werden konnten.

Meine Lösung ist jetzt ein neues Attribut calendarformat.
Wenn dies nicht gesetzt ist, bleibt es bei bisherigen Verhalten zur Abwärtskompatibilität.
Wenn man es setzt muss man ein gewünschtes Format angeben. Möglich sind hier alle Werte wie bei <FormatSpec> im Calendar Device. Der erste Wert muss dabei $T1 sein, damit als erstes das Startdatum ausgegeben wird. Alles folgende wird dann als Bezeichnung verwendet. So kann man zum Beispiel den Wert text oder analog dazu custom="$T1 $S" setzen und erhält als Bezeichnung Gelber Sack. Auch möglich ist zum Beispiel custom="$T1 $S ($D)" für Gelber Sack (24h) usw.

@phenning Einen SVN-Patch habe ich beigefügt.
@all Wer es testen möchte: die angepasste 95_YAAHM.pm habe ich hier im Post entfernt, zum Testen gebe ich sie gern auf Nachfrage per PM raus.

PS: Patch aktualisiert 2020-11-08: Kommentarzeile entfernt
Es gibt 10 Gruppen von Menschen: Die, die Binärcode verstehen und die, die ihn nicht verstehen.

Ich möchte gerne die Welt verändern, doch Gott gibt den Quelltext nicht frei.

Prof. Dr. Peter Henning

Sorry, diese Änderungen werde ich nicht übernehmen. Und bitte das gepatchte Modul nicht mit dem gleichen Namen versehen, das führt nur zu Durcheinander.

LG

pah

Florian St.

Dürfte man auch die Begründung erfahren warum die Änderung direkt abgelehnt wird?
Gibt es einen alternativen Vorschlag wie ich meine Termine, die im Kalender eine Ortsangabe haben, anzeigen lassen kann?
Bzgl. Gleicher Name: ich dachte falls jemand auch keine Termine angezeigt bekommt könnte man provisorisch diese Version nutzen und schauen ob es das Problem löst. Ich habe sie aus dem Post entfernt...

VG
Florian
Es gibt 10 Gruppen von Menschen: Die, die Binärcode verstehen und die, die ihn nicht verstehen.

Ich möchte gerne die Welt verändern, doch Gott gibt den Quelltext nicht frei.

Prof. Dr. Peter Henning

Ich habe eine geänderte Version eingecheckt, die das Kalenderhandling deutlich verbessert. Unter anderem ist damit auch der o.a. Wunsch erledigt, aber auf andere Weise.

LG

pah

Florian St.

Hallo
ich habe es heute getestet. Hat funktioniert - Danke :)

Wie kann man eigentlich ein Update der Termine manuell triggern, ohne den Zeitpunkt "Nach Mitternacht" zu verschieben?
Ich habe gesehen, theoretisch geht dies mit $event eq "test", aber wie ruft man das auf?

VG FS
Es gibt 10 Gruppen von Menschen: Die, die Binärcode verstehen und die, die ihn nicht verstehen.

Ich möchte gerne die Welt verändern, doch Gott gibt den Quelltext nicht frei.

Prof. Dr. Peter Henning

{YAAHM_checkMonthly($defs{'devicename'},'test','')}

LG

pah