Neues Modul: 57_GCALVIEW Google Kalender Viewer (+Abfall Kalender)

Begonnen von mumpitzstuff, 04 Oktober 2017, 00:02:11

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Kann sein das ich da was vergessen habe. Ich schau so schnell wie möglich rein.

mumpitzstuff

Update ist eingespielt und sollte das Problem beheben. Da waren mir ein paar Attribute durch die Lappen gegangen...

rabehd

Bei mir wird immer noch auf die Kalender zugegriffen, die beim Anlegen abonniert waren. Ich wollte das neu einrichten. Leider ohne Erfolg. Das liegt sicher auch an meinen geringen Linux-Kenntnissen.

ZitatSo wie es aussieht musst du das Verzeichnis .gcalcli_oauth aus deinem Verzeichnis /opt/fhem löschen und die Prozedur mit dem oauth Token noch einmal machen.
Das Verzeichnis war versteckt. Ich denke ich konnte es löschen, zumindest wurde es nicht mehr aufgelistet.
Die Prozedur lässt sich aber nicht wiederholen, es werden nur die bisherigen Kalender aufgelistet. (Auch nach einem Neustart des Raspi)

Wie kriege ich die Kalender wieder aus der Liste? Würde gern neu anfangen.
Auch funktionierende Lösungen kann man hinterfragen.

mumpitzstuff

Sry hab vergessen zu antworten. Hast du dich als User fhem angemeldet gehabt und dann die Prozedur mit gcalcli list auf der Konsole versucht?

Zuerst solltest du mal das Kalenderdevice auf disabled setzen. Dann löscht du das Attribut userattr und calendarFilter falls vorhanden. Jetzt löscht du die beiden Dateien .gcalcli_oauth und .gcalcli_cache im Verzeichnis /opt/fhem.
Dann meldest du dich wieder als User Fhem an. Wenn du jetzt mit gcalcli list trotzdem deine Kalender bekommst, ist irgendwas schief gelaufen. Also entweder du suchst jetzt mal mit find nach anderen Dateien die .gcalcli_oauth heißen oder du versuchst mal den weg über die direkte Angabe von configFolder. Hier könntest du z.b. /opt/fhem verwenden. Vergiss dann aber nicht im Kalender Device auch das Attribut configFolder entsprechend zu setzen. In der Anleitung hatte ich den Weg ergänzt. Ich hoffe das ist ausreichend.

rabehd

Mir ist Deine Antwort auch erst heute aufgefallen.

Es war wohl das Anmelden mit User fhem, zumindest konnte ich jetzt löschen und neuanlegen.

Danke
Auch funktionierende Lösungen kann man hinterfragen.

rabehd

Funktioniert wunderbar.
Um eine eiermilchlegende Wollsau zu bekommen hätte ich noch ein paar Wünsche. Die kann ich auch über UserReadings selbst lösen, aber ....  ;)


  • Ausgabe in Deutsch, bzw. Sprache über Attribut wählbar
    (daysleftLong und weekday hätte ich gern in Deutsch. Das passt besser zu meine Oberfläche)
  • Ein Reading, welche aus summary Jahreszahlen extrahiert und in Alter umrechnet. CALVIEW hat das Attribut isbirthday, sowas wünsche ich mir
  • Im Zusammenhang mit einer Geburtstagsliste hätte ich gern nicht eine Begrenzung nach Tagen, sondern Anzahl der Einträge
Auch funktionierende Lösungen kann man hinterfragen.

mumpitzstuff

Schau die mal die Attribute an:
alldayText: set the text for an allday event (default: all-day)
weekdayText: set the weekday text as comma separated list (default: Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday)
wasteEventSeparator: separator for waste events if there are more than 1 event in one day

Da kannst du doch schon Text in Deutsch eintragen. Daysleftlong fehlt an der Stelle noch. Werde ich nachrüsten.

Das mit dem Geburtstag berechnen kann ich bastelt, würde dann aber auf eine Art Keyword setzen als einfach zu versuchen Jahreszahlen zu finden. Ich hab das extra weggelassen,da ich dachte das braucht doch niemand. So kann man sich irren.

Den letzten Punkt verstehe ich nicht. Kannst du den bitte noch mal erklären?

mumpitzstuff

Ich habe jetzt zusätzlich das Attribut daysLeftLongText hinzugefügt. Damit ist dann Punkt 1 deiner Wünsche komplett abgedeckt. Wenn es was übersehen habe melde dich bitte noch mal.

Punkt 3 habe ich bei nochmaligen lesen übrigens verstanden. Du möchtest nicht die Anzahl der Tage angeben für die die Events angezeigt werden, sondern eine Anzahl von Events die angezeigt werden sollen. Ich glaube das Problem lässt sich bereits lösen. Versuch mal eine große Zahl beim Attribut calendarDays einzutragen und gleichzeitig beim Attribut maxEntries die von dir gewünschte Menge an Einträgen. Ich glaube damit müsste sich Punkt 3 von deiner Liste erschlagen lassen. Gib mir auch hier Bescheid wenns klappt.

Punkt 2 breche ich nicht übers Knie, hier mache ich mir erst ein paar Gedanken dazu...

rabehd

Ich sehe Dich nicht als Auftragsentwickler. Deshalb mein besonderer Dank für die Umsetzung meiner Ideen/Wünsche.

Ich bin in den letzten Tagen nicht zum Testen gekommen. Wahrscheinlich auch in den nächsten Tagen nicht.
Sobald ich es getan habe, melde ich das Ergebnis.

Auf jeden Fall Danke.
Auch funktionierende Lösungen kann man hinterfragen.

rabehd

Ich habe auf Basis Deines Modules 4 Kalender. Deshalb auch die vielen "Anforderungen".
Der Kalender "Dienst" zeigt mir an wann jemand auf Grund von Diensten (Nacht, Spät...) nicht zuhause ist, bzw.  zuhause ist.
Hier habe ich für die Anzeige "daysLeftLongText" gebraucht. Es funktioniert!  :D
So wie es da ist, ist es gut. Einige, ich auch, fänden "übermorgen" auch nicht schlecht. Also heute,morgen,übermorgen,in % Tagen. Das ist aber Luxus.

Ich hätte das gern auch im Kalender "Abfall" gehabt. Dort gibt es keine Readings mit "daysLeftLong". Das Attribut wiederrum gibt es  ;).
Geholfen habe ich mir mit Papiermuell_inday  {Muelltag2("Papiermuell_days")}
,Gelber_Sack_inday {Muelltag2("Gelber_Sack_days")}

sub Muelltag2($)
{
  my ($art) = @_;
  my $text = ReadingsVal("KalenderAbfall", $art, "--");

  if ($text eq "--") {
     return " --";
  }
  elsif ($text == 0)  {
     return " heute";
  }
  elsif ($text == 1)  {
     return " morgen";
  }
  else  {
     return " in " . $text . " Tagen";
  }
}

(Werde ich wohl noch auf Übermorgen umbauen  :o)

Mit meiner Geburtstagsliste habe ich mich noch nicht weiter befasst.
ZitatDas mit dem Geburtstag berechnen kann ich bastelt, würde dann aber auf eine Art Keyword setzen als einfach zu versuchen Jahreszahlen zu finden. Ich hab das extra weggelassen,da ich dachte das braucht doch niemand. So kann man sich irren.
Bin ich der einzige der es benutzt?
CALVIEW hat ein Attribut "isbirthday" welche ein Reading "_age" erzeugt.
Zitatisbirthday
0 / nicht gesetzt - keine Altersberechnung (Standard)
1 - aktiviert die Altersberechnung im Modul. Das Alter wird aus der in der Terminbeschreibung (description) angegebenen Jahreszahl (Geburtsjahr) berechnet. (siehe Attribut yobfield)
Passt bei mir. Ich kann es mir auch als Userreading für Device auf Basis Deines Modules basteln.

In meinem Terminkalender gibt es auch Einladungen. Die scheinen ein Problem zu erzeugen. Zumindest steht dieser Termin dann regelmäßig im Log.
Zitat2017.12.07 08:28:04 3: Kalendertest: something went wrong (invalid gcalcli output) - 2017-12-08, 09:00, 2017-12-08, 10:00, https://www.google.com/calendar/event?eid=bW1hMnM0Y2g0YXR........XJyYWxmLmFyYmVpdEBt, , ..... Community TelKo, Skype-Besprechung, Liebe ...... Community,
\n
\nhier die monatliche Terminserie (immer der 2. Freitag im Monat).
(Inhalt verändert und gekürzt.)

Danke für die Entwicklung des Modules.
Auch funktionierende Lösungen kann man hinterfragen.

RoBra81

Hallo,

Zitat von: rabehd am 07 Dezember 2017, 09:23:50
Mit meiner Geburtstagsliste habe ich mich noch nicht weiter befasst.Bin ich der einzige der es benutzt?
CALVIEW hat ein Attribut "isbirthday" welche ein Reading "_age" erzeugt.Passt bei mir. Ich kann es mir auch als Userreading für Device auf Basis Deines Modules basteln.

das würde mich auch interessieren. Ich habe zwei Kalender: Jahrestage und Termine. Beim Jahrestage-Kalender ist die Description immer das Anfangsjahr (Geburtsjahr, Hochzeit, ...). Wenn man für den konkreten Kalender jetzt sagen könnte, dass er das Alter aus der Description berechnen soll, wäre das echt super!

EDIT: Bzw. generell, wenn die Description nicht mehr als eine 4-stellige Zahl ist, wird sie als Jahreszahl interpretiert und das Reading age berechnet...

Ronny

mumpitzstuff

Das mit der 4 stelligen Zahl klingt ganz gut und wenn man das nur macht, wenn dort wirklich nichts anderes steht, ist das relativ eindeutig.

Ich würde das dann so einbauen.

mumpitzstuff

Ich hab da mal was eingecheckt. Mit dem Attribut showAge kann man jetzt das Alter in einem Reading _age anzeigen lassen. Es wird nach einer 4stelligen Zahl in der Description gesucht (die Restriktion das nur die Zahl drin stehen darf hab ich erst mal weg gelassen) welche mit 19, 20, 21 beginnt.

Schaut es euch mal bitte an.

rabehd

Irgewndwie klappen die Updates Deiner Module bei mir nicht.

Zitatfhem
nothing to do...

fhemtabletui
nothing to do...

gcalview
List of new / modified files since last update:
UPD FHEM/57_GCALVIEW.pm

New entries in the CHANGED file:
  - attribute showAge added

sird
List of new / modified files since last update:
UPD FHEM/17_SIRD.pm

New entries in the CHANGED file:
- timeouts fixed (dirty hack - rework needed)
Auch funktionierende Lösungen kann man hinterfragen.

mumpitzstuff

Weshalb? Das Update war doch erfolgreich. Beide Module sind nach einem shutdown restart aktuell. Das muss genau so aussehen.