Geburtstagskalender, Alter berechnen

Begonnen von Pankratius, 04 Dezember 2016, 20:39:21

Vorheriges Thema - Nächstes Thema

tomster

Überredet. Macht wohl deutlich mehr Sinn.
Danke an dieser Stelle nochmal für Deinen "Support". Das Modul ist wirklich eine Bereicherung!

tomster

Was mir aufgefallen ist, nchdem ich einige weitere Kalender hinzugefügt habe:

Im reading t_xxx_age steht bei Einträgen, die keine 4-stellige Jahreszahl im yobfield haben (also quasi alle, die keine Geburtstage sind) immer die aktuelle Jahreszahl. Vermutlich, weil Du ja eine simple Subtraktion der aktuellen Jahreszahl minus Geburtsjahr machst. Wäre es da nicht sinnvoller in diesem Fall gar nichts im Reading stehen zu haben?
Eigentlich will ich ja nur dann das Alter ausgegeben haben, wenn es sich tatsächlich um einen Geburtstag handelt. Wenn bei der Papiertonne "2017" steht, dann verwirrt das wohl mehr, als dass es hilft....


tomster

Läuft einwandfrei! Danke, das war mal wieder schnell!

chris1284

bei mir auch, ist morgen im update. danke fürs testen

Porsti

Hi,

habe auch schon immer vor einen Geburtstagkalender in fhem anzulegen.
Habe mal eine frage zu der ical Datei.
Mit welcher Software erstellt ihr die iCal Datei?
Habe es mit Outlook 2013 versucht aber bin daran Gescheitert einen Geburtstag anzulegen und nicht einen Termin.

Gruß
Porsti
____________________________________
fhem 6.2  auf Raspberry 3b
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
SIGNALduino, KNX (Merten, MDT, Siemens, ABB)

chris1284

aber ein geburtstag ist doch auch nur ein termin?!  :o serientermin immer am zb 1.12.
ansonsten wozu lokale ical datei.? die termine hab ich einfach mit im googlecalendar
was google an geburtstagen aus den kontakten anzeigen kann man auch nicht einbinden (habe ich einfach in meinen googlekalender kopiert)

im outlook würde ich das als termin (ganztägiges ereignis) vom serienmuster jährlich am x.x. ohne enddatum anlegen (man weiss ja nicht wie alt die leute werden  ;D )

trinitywhm

Das mit der Alterberechnung im Geburtstagskalender ist wirklich super.

Eine Frage habe ich allerdings: Ich bin es gewohnt Geburtstage als Serientermine anzulegen mit dem Tag der Geburt als Startdatum und dann jährliche Wiederholung mit offenem Ende. Wenn ich die Termine allerdings so in einen Kalender eintrage und das Alter bereche, kommt das Alter raus, wie alt derjenige heute (bspw. zwei Tage VOR seinem Geburtstag ist). Und in daysleft steht somit auch ein negativer Wert drin.
Das läßt sich nur verhindern wenn man den Geburtstag als normalen Termin (ohne Wiederholung) einträgt. Dann wird das Alter korrekt berechnet und das daysleft hat einen positiven Wert. Wenn ich aber all meine Geburtstage so eintrage, dann müsste ich ja für nächstes Jahr meine Geburtstage wieder neu eingeben, oder bin ich jetzt auf dem Holzweg?

chris1284

ich habe alle geburstage als serientermin eingetragen. ganztägig mit jährlicher wiederholung, ende nie. hast du evtl eine erinnerung eingestelllt,  2tage vorher?

trinitywhm

Nein, ohne Erinnerung.
Serientermin beginnt am Tag der Geburt, endet nie, jährliche Wiederholung.

Aber ich hatte eben eine Idee woran es auch hier liegen könnte. Habe schon an anderer Stelle mit dem Calview ein bisschen rumprobiert (Abfall-Modul) Wenn man die Attribute hideOlderThan und hideLaterThan verwendet, dann passt das auch mit den korrekten Geburtstagsangaben.

M.Piet

Hallo Zusammen,

bin grad dabei das neben meinem Müllkalender umzusetzen.
Legt ihr eure Geburtstage bei Google manuell als Serientermin an oder nutzt ihr den automatischen Eintrag wenn bei einem Kontakt ein Geburtstag eingetragen ist?
Ich habe das Problem, das ich bei Google nur den "normalen" Kalender freigeben kann, aber den Geburstagskalender nicht. Das sind ja in einem Google-Kalender 2 getrennte Kalender.
Ist das bei euch auch so? Oder wo kommen die Daten der Geburtstage bei euch her?

Bei mir kommen im CalView nur die Einträge an, die ich in den "normalen" Kalender schreibe, nicht die des Geburtstagskalenders.

tomster

Ich habe alle Geburtstagstermine als Serientermin in einem Unterkalender angelegt. In einem weiteren Unterkalender sind dann die Mülltermine als iCal von meinem "Provider" importiert.
Ich hole die beiden (Unter-)Kalender aber über jeweils separate Calendar-Definitionen, respektive iCal-Links, ab. Dadurch habe ich innerhalb FHEM schon die "Herkunft" definiert und kann problemlos nach Geburtstag oder Müll sortieren.

M.Piet

Hey Tomster.

ja genauso habe ich es jetzt umgesetzt. Mein Geburstagskalender funktioniert. :)

Nun habe ich eine Seite vorher einen Screenshot von dir gesehen (siehe unten).
Wie hast du es final hinbekommen, das er das Alter anzeigt (rot markiert)? Über eine kurze Erklärung und/oder den HTML würde ich mich sehr freuen.

tomster

Puhh, da fragst Du mich was...
Der Screenshot ist aus einem Entwicklungsstand, den ich schon länger nicht mehr verwende. Mir waren die Werte in den warn-classes einfach zuu schlecht zu entziffern.
Aber soweit ich mich erinnere hatte ich einfach dem label eine warn-class verpasst, die eben z.B. das Reading t001_age aus dem CALVIEW-device ausliest.

Inzwischen löse ich es wie im Screenshot unten. Eigentlich ist es mir nämlich herzlich wurscht, welches Baujahr mein Geburtstagskontakt hat.
Ich will einfach nur wissen, wie alt er wird ;-)
Der aktuelle Stand ist wie folgt definiert. Die css-Klassen, die ich verwende, musst Du natürlich in einer "user.css" (oder wie Du sie nennen willst) entsprechend definieren.
Meine sind auch noch nicht endgültig, weil ich noch an ein paar Feinheiten feile. Prinzipiell sollte der Code aber auch bei Dir funktionieren, denk ich.

<div class="row-1-7">
<div data-type="symbol" data-device="Kalender" data-get="t_001_source" data-on-colors='["#FFFFFF","#FFFFFF"]'
        data-states='["Geburtstage","Abfallkalender","L","F","K","T"]' data-icons='["fa-birthday-cake","fa-trash","L","F","K","T"]' class="cake col-1-15"></div>
<div class="left-align inline">
        <div data-type="label" data-device="Kalender" data-get="t_001_summary" data-part="([\D.-]+).*" class="calendar inline nowrap"></div>
        <div data-type="label" data-device="Kalender" data-get="t_001_age" class="calendar inline nowrap"></div></div>
<div data-type="label" data-device="Kalender" data-get="t_001_daysleftLong" class="calendar col-25 right right-align"></div>
</div>

elmer

Super Modul, Geburtstag und Alter finde ich echt Klasse. Wo muss das Geburtsjahr beim Google Kalender eingegeben werden, ich habe es bisher nur geschafft wenn ich es in den Termin mit übernommen habe, ist aber nicht die beste Lösung.

Kann man das ganze auch per Pushover versenden, also immer den Termin von heute?