Autor Thema: Geburtstagskalender, Alter berechnen  (Gelesen 9111 mal)

Offline Pankratius

  • New Member
  • *
  • Beiträge: 17
Geburtstagskalender, Alter berechnen
« am: 04 Dezember 2016, 20:39:21 »
Hallo zusammen,

ich habe hier im Forum gesucht, aber leider keine Lösung gefunden.

Mein Wunsch ist es für die Anzeige von Geburtstagsterminen das
jeweilige Alter des Geburtstagskindes anzuzeigen.

Die Geburtstage sind als ical-Kalender verfügbar.

define calGeburtstage Calendar ical url http://localhost/davical/public.php/XXXX/birthdays.ics 6000
attr calGeburtstage hideLaterThan 20d
attr calGeburtstage hideOlderThan 10d
attr calGeburtstage room Kalender

Diese Einträge werde als CALVIEW verarbeitet
define cvGeburtstage CALVIEW calGeburtstage 2
attr cvGeburtstage modes next
attr cvGeburtstage room Kalender

Und mit TabletUI gebe ich diese Informationen so aus:
                               <li data-row="1" data-col="3" data-sizex="2" data-sizey="1">
                                        <header>
                                        <div data-type="label" class="large">Geburtstage</div>
                                        </header>
                                        <table width="100%" >
                                                <tr>
                                                        <td>
                                                                <div data-type="label" data-device="cvGeburtstage" data-get="t_001_bdate" data-part="(\d\d\.\d\d\.).*"></div>
                                                        </td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_001_summary" data-part="1"></div></td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_001_summary" data-part="3"></div></td>
                                                </tr>
                                                <tr>
                                                        <td>
                                                                <div data-type="label" data-device="cvGeburtstage" data-get="t_002_bdate" data-part="(\d\d\.\d\d\.).*"></div>
                                                        </td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_002_summary" data-part="1"></div></td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_002_summary" data-part="3"></div></td>
                                                </tr>
                                                <tr>
                                                        <td>
                                                                <div data-type="label" data-device="cvGeburtstage" data-get="t_003_bdate" data-part="(\d\d\.\d\d\.).*"></div>
                                                        </td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_003_summary" data-part="1"></div></td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_003_summary" data-part="3"></div></td>
                                                </tr>
                                                <tr>
                                                        <td>
                                                                <div data-type="label" data-device="cvGeburtstage" data-get="t_004_bdate" data-part="(\d\d\.\d\d\.).*"></div>
                                                        </td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_004_summary" data-part="1"></div></td>
                                                        <td class="r"><div data-type="label" data-device="cvGeburtstage" data-get="t_004_summary" data-part="3"></div></td>
                                                </tr>
                                        </table>
                                </li>

Soweit alles gut
aus dem Eintrag t_001_summary = "Marga XXXX, #1921" wird der richtige Eintrag angezeigt. Siehe Anhang.

Nun möchte ich aber statt #1921 das Alter eingeben, also
jetziges Jahr - 1921 = 95 Jahre, bzw. korrekter: Termin - Wert von #1921 = 95
(damit schlägt man auch den Fall dass man am 31.12. einen Geburtstag ab dem 1.1. anzeigen will).

Nun suche ich eine Möglichkeit diese Berechnung durchzuführen um als Rückgabe die 95 zu erhalten.

Ist dieses nur mit Perl möglich oder hat jemand bereits eine Lösung?

Vielen Dank
Rüdiger

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #1 am: 21 Dezember 2016, 19:38:52 »
ich denke du wirst da nicht drumherum kommen. ich hatte mal den plan eine art attr in calview einzubauen das diese view als geburtstagskalender kennzeichnet und dann intern ein bestimmtes feld als jahreszahl her nimmt und rechnet. danach alles als neues reading t_xxx_age auszugeben. habe ich bisher aber noch nicht angefangen das es bisher kaum anfragen dazu gab (würde dann natütlich auch im tui widget calview einfließen)
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #2 am: 21 Dezember 2016, 20:27:19 »
ich habe die calview erweiter:
- calview um description reading erweitert (Beschreibung eines Termins)
- es gibt ein attribut "isbirthday": wird dieses gesetzt wird in description nach inhalt gesucht und dieser vom aktuellen jahr abgezogne
- das ergebniss steh im reagding t_xxx_age / tomorrow_xxx_age /  today_xxx_age

bedingt eine view für geburtstage

todo:
- jareszahlenfeld variabel gestalten (description / location /...)
- prüfung ob jahreszahlenfeld eine (4stellige) zahl enthält die kleiner als das aktuelle jahr ist
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline Christoph

  • Full Member
  • ***
  • Beiträge: 188
Antw:Geburtstagskalender, Alter berechnen
« Antwort #3 am: 28 Dezember 2016, 11:27:50 »
Hallo Chris,

ist die Änderung schon ins normale fhem Update eingeflossen ?
Finde das Attribut nicht

Version gibt folgendes aus, Fhem ist aktuell:

57_CALVIEW.pm           12837 2016-12-19 20:53:48Z chris1284

Gruß Christoph

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #4 am: 28 Dezember 2016, 16:44:46 »
nein, läuft bei mir als test. bisher soweit i.O. spätestens am we werde ich es einchecken
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #5 am: 28 Dezember 2016, 18:12:44 »
update gibts morgen... weitere infos hier  https://forum.fhem.de/index.php/topic,63575.0.html
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #6 am: 25 Januar 2017, 09:37:13 »
Servus Chris,

gibt es einen bestimmten Grund dafür, dass man für die Geburtstagsberechnung - das ist doch das yobfield, oder? - "nur" die Felder _description oder _location auswählen kann? In meinem Fall (Auslesen eines Google Kalenders) habe ich nämlich gar keine _description- und _location gibt den Ort an. Das Geburtsjahr steht zusammen mit dem Namen im Feld _summary. Das kann man nur dummerweise nicht auswählen...

Zudem stelle ich mir die Frage, ob es nicht Sinn machen könnte das Modul um eine Angabe "der Tage bis..." zu einem Termin zu erweitern. Ein Reading das aus dem heutigen Datum abzüglich des Startdatums des jeweiligen Termins ein "in X Monat(en)/Tag(en)/morgen/heute" ausgibt. Klar, ein UserReading ist auch kein Ding, aber "einheitlicher" wäre es, wenn das Modul diese Berechnung selbst anstellen könnte, oder?

Was meinst?
LG,
Tom

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #7 am: 25 Januar 2017, 15:40:08 »
Zitat
In meinem Fall (Auslesen eines Google Kalenders) habe ich nämlich gar keine _description- und _location gibt den Ort an. Das Geburtsjahr steht zusammen mit dem Namen im Feld _summary. Das kann man nur dummerweise nicht auswählen...

was ist das für einer.? ich habe auch mal einen goolge-geburtsagskalender gehabt den google aus den kontakten generiert hat. diesen könnte man aber nicht im calendar nutzen (somit nicht in calview). deswegen habe ich diese Termine stupf in einen neuen googlecalendar kopiert und dort dann auch die geburstjahre in description/locaction geschrieben.


_summary zu durchsuchen nach einer 4 stelligen zahl wäre natürlich auch möglich

Zitat
Zudem stelle ich mir die Frage, ob es nicht Sinn machen könnte das Modul um eine Angabe "der Tage bis..."

da stell ich mir die frage wer das wirklich braucht/nutzen würde, ich wüsste nicht wozu aber in fhem wird ja oft alles mögliche angezeigt nur wiel man es kann  ;D

Das errechnen der tage bis zum nächsten termin (muss man ja nicht nur auf geburtstage anwenden) finde ich an sich im modul abfall schon für mich sinnfrei (auch wennich es aktuell in der ui noch per warn-symbol) anzeigen lasse. mich interessiert eigentlich nur muss ich heute oder morgen was rausstellen und nicht in ob in 10 tagen irgendwelcher müll abgeholt wird.

ich schaue mir beides an (_summary +  _daysleft)


« Letzte Änderung: 25 Januar 2017, 15:52:50 von chris1284 »
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #8 am: 25 Januar 2017, 15:53:38 »
wenn du den kontakte und kreise google default kalender in fhem hast, wäre ich interessiert wie du ihn rein bekommen hast. der hat ja nur ne html-adresse und keine private ical
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #9 am: 25 Januar 2017, 17:23:06 »
Ich hab den "Default-Kalender" meines Google-Accounts gar nicht eingebaut, geschweige es versucht. Mir war es bislang schon immer ein Gräuel, wenn alle Terminarten in einem einzigen Kalender verwurschtelt sind. Darum hab ich auf Google einen "Sub-Kalender" mit den Geburtstagen und noch einen mit der Abfallabholung angelegt.
Beide sind separat mittels Calendar-Modul (=ical) in FHEM definiert. In Deinem CALVIEW hab ich dann einfach beide Kalender zusammen im DEF eingetragen. Das hat aus meiner Sicht den Vorteil, dass in den Readings für jeden Eintrag nun auch immer gleich die _source mit angegeben ist. Damit kann ich im FTUI ganz einfach unterscheiden um welche Terminart es sich handelt und vor dem Eintrag ein entsprechendes Icon anzeigen lassen.

Hintergrund ist, dass ich derzeit an einem DIY-"Magic Mirror" (MM) bastle, dessen GUI ich gerne mit FTUI realisieren möchte, weil ich nicht noch ein System (MM + FHEM/FTUI) pflegen, bzw. rumstehen haben möchte. Von daher kann ich Dir versprechen, dass die _daysleft zumindest in meinem Fall nicht nur da sind, weil man es kann, sondern auch einen nicht außer Acht zu lassenden (WAF-)Nutzen haben.

Klar, ein UserReading wäre auch möglich, aber manchmal frag ich mich ob es wirklich sinnvoll ist bestimmte Modul-Funktionen von jedem Nutzer immer "zu Fuß" einbauen zu müssen, nur weil man es kann ;-)

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #10 am: 25 Januar 2017, 19:16:39 »
ok, wie gesagt die daysleft und jahr aus summary schaue ich mir an, aber wenn du nen normalen calendar nutzt kannst du die jahrezahl doch einfach in description (feld beschreibung eintragen. das ist
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #11 am: 26 Januar 2017, 00:05:04 »
Klar, kann ich die Geburtsjahre von der _summary in die _description umschreiben. Mal abgesehen, dass das knapp 400 Einträge sind, hätt ich aber auf den Geräten, die kein FHEM sind (und nicht ausrechnen können, der wievielte Geb es gerade ist) zumindest das Geburtsjahr gern auf einen Blick im Eintrag stehen. Beide Felder "pflegen" kommt aus Benutzergründen (Frau trägt auch ein) irgendwie weniger in Frage.
Klingt komisch, is aber so.

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #12 am: 28 Januar 2017, 18:08:48 »
ich habe nun eingebaut das wenn attr yobfield _summary das feld summary nach den ersten 4 aufeinanderfolgenden zahlen durchsucht wird und damit gerechnet.
bedeutet wenn im termin zb tante otto 01.02.1900 steht wird 1900 gefiltert und von terminjahr (2017 zb) abgezogen und das alter 117 ausgegeben
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #13 am: 28 Januar 2017, 18:34:12 »
reading daysleft wurde auch eingebaut
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #14 am: 30 Januar 2017, 04:05:56 »
Servus Chris,
bin noch bis 10.02. ohne wirklichen Zugang zur "FHEM-Welt", sag aber schon Mal: Vielen Dank!
Test gips alsbald ich wieder in der Zivilisation bin.
LG,
Tom

Offline Ma_Bo

  • Hero Member
  • *****
  • Beiträge: 1096
Antw:Geburtstagskalender, Alter berechnen
« Antwort #15 am: 31 Januar 2017, 09:42:56 »
@chris1284: bitte mal hier schauen: https://forum.fhem.de/index.php/topic,66095.0.html
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #16 am: 01 Februar 2017, 03:19:13 »
reading daysleft wurde auch eingebaut
Servus Chris,

hab die neue Version gerad eingebaut. Das Alter aus dem summary-Reading funktioniert einwandfrei. Bei daysleft haben wir uns wohl mißverstanden. Ich dachte daran, dass bei daysleft=0 als Reading (bspw. t_001_daysleft_long) "Heute", bei daysleft=1 als Reading "Morgen" und ansonsten "in X Tagen"  angezeigt wird. Das würde es mir im FTUI deutlich leichter machen, als für jeden Tag einige Extra-Abfragen einzubauen.
Sorry, wenn das nicht rübergekommen ist...

LG,
Tom

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #17 am: 01 Februar 2017, 14:40:11 »
ich kann gerne noch ein readings daysleft_long einbauen wenn daysleft =0 "heute" und daysleft=1 "morgen" und daysleft >1 "in x Tagen"
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #18 am: 01 Februar 2017, 14:56:38 »
Das wär echt spitze! Vielen Dank schon Mal dafür.

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #19 am: 03 Februar 2017, 15:20:54 »
eingebaut!
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #20 am: 03 Februar 2017, 20:15:21 »
Works like a charm! Vielen Dank!

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #21 am: 03 Februar 2017, 20:24:30 »
ich muss sagen das ich es vorher nicht gedacht hätte aber ich nutze das mit meinem calview widget nun fast ausschließlich in der tabletui mit data-get all hat man so schöne kompakte "lerserliche"  übersichten
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #22 am: 04 Februar 2017, 14:50:00 »
Freut mich, dass die Idee Anklang findet. Ich bin auch der Meinung, dass es der Übersichtlichkeit sehr dienlich ist.
Zudem hilft es mir enorm in der Umsetzung des FTUIs für mein Magic-Mirror-Projekt.
Und deshalb schlichtweg nochmal: Vielen Dank!

Offline Andy89

  • Full Member
  • ***
  • Beiträge: 254
Antw:Geburtstagskalender, Alter berechnen
« Antwort #23 am: 04 Februar 2017, 19:14:06 »
coole Sache mit der Geburtstagsberechnung in dem Modul =)
Bisher habe ich das alles in einer myUtils gemacht. Jedoch macht die noch eine kleine Sache minimal "besser"/UI freundlicher. Könntest du noch das Geburtsjahr aus dem summary rausfiltern? Oder weißt du, ob man das evtl per Regex direkt im FTUI rausfiltern könnte?

Danke aber auf jeden Fall für die Berechnung =) Dann kann ich mir meine nun sparen  ;D ;D

Beste Grüße
Andy
FHEM 5.8 auf rPi3 (mit Homebridge); dbLog und FTUI auf DS1813+; AMAD für Fire;
HMLAN > HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-Sec-RHS,HM-TC-IT-WM-W-EU,ZEL STG RM FFK;
CUL433 > IT, Elro; LGW > PCA301,EC3000,BME280,LaCrosse;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Enigma2;Withings Scale;HUE

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #24 am: 04 Februar 2017, 21:35:33 »
Könntest du noch das Geburtsjahr aus dem summary rausfiltern?

wie meinst du das? für die berechnung hole ich es schon aus der summary wenn in yobfield = _summary gesetzt ist.
meinst du das geburtsjahr zusätzlich noch als reading oder wie?
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline Andy89

  • Full Member
  • ***
  • Beiträge: 254
Antw:Geburtstagskalender, Alter berechnen
« Antwort #25 am: 05 Februar 2017, 13:38:43 »
wie meinst du das? für die berechnung hole ich es schon aus der summary wenn in yobfield = _summary gesetzt ist.
meinst du das geburtsjahr zusätzlich noch als reading oder wie?

ok ich gebe zu meine Formulierung war sch...lecht...
mit rausfiltern meinte ich löschen.

Beispiel:
Originalsummary: Vorname Nachname Geburtsjahr  zB Max Mustermann 1900
wenn in yobfield = _summary drin steht, dann fände ich es cool, wenn das Geburtsjahr aus dem summary entfernt wird
Neues Summary: Vorname Nachname zB Max Mustermann

Oder kann man das Geburtsjahr irgendwie anders einfach rauslöschen?

Ich hoffe, dass das nun verständlicher ist.... ;D

Beste Grüße
Andy
FHEM 5.8 auf rPi3 (mit Homebridge); dbLog und FTUI auf DS1813+; AMAD für Fire;
HMLAN > HM-Sen-MDIR-WM55, HM-CC-RT-DN, HM-Sec-RHS,HM-TC-IT-WM-W-EU,ZEL STG RM FFK;
CUL433 > IT, Elro; LGW > PCA301,EC3000,BME280,LaCrosse;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Enigma2;Withings Scale;HUE

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #26 am: 05 Februar 2017, 17:20:52 »
Oder kann man das Geburtsjahr irgendwie anders einfach rauslöschen?

Das ist eigentlich eine gute Frage. Zunächst dachte ich, dass data-part DER Tipp für Dich sein sollte.
Wenn Du in Deinem Kalender z.B. einen Eintrag "Max Mustermann 1976" stehen hast, dann stellt das label-Widget eine "Leerstellen-separierte" Aufbereitung des Readings bereit. So könnst Du mit data-part="1" nur "Max", mit data-part="2" nur "Mustermann", etc. anzeigen lassen. Leider kann data-part aber anscheinend kein array, so wie data-part='["1","2"]'. data-part="1,2" funzt auch nicht. Vielleicht hat setstate sich da aber auch eine andere Syntax ausgedacht...

Auch habe ich es nicht hinbekommen ein funzendes RegEx zu erstellen. Ich bin fürwahr kein RegEx-Checker, dachte aber ein simples
[^0-9]+
sollte reichen, wenn im "Namensteil" keine Zahlen, sondern nur Ziffern vorkommen. Funzt aber leider auch nicht.
Vielleicht stellst Du die Frage lieber auch im FTUI-Board.


--edit--
So haut der RegEx hin bei mir:
data-part="([\D.-]+).*"
Zumindest bei o.a. Kalendereinträgen.
« Letzte Änderung: 05 Februar 2017, 18:39:30 von tomster »

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #27 am: 15 Februar 2017, 06:37:11 »
der regexp im calview moduk findet die zahl, müsste also nur dahin erweitert werden sie zu löschen.
am we werde ich denke ich dafür zeit haben mir das nochmal anzusehen.

« Letzte Änderung: 15 Februar 2017, 06:40:11 von chris1284 »
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #28 am: 15 Februar 2017, 11:57:58 »
Ich bekomme im FTUI die Jahreszahl mit obigem RegEx wunderbar "rausgelöscht". Wäre es aber nicht sinnvoller eine Funktion "substituteyr4age" einzubauen, die bei gesetztem Flag automatisch im summary-Reading die Jahreszahl z.B. 1971 gegen das Alter (46) ersetzt?

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #29 am: 15 Februar 2017, 12:10:37 »
Wäre es aber nicht sinnvoller eine Funktion "substituteyr4age" einzubauen, die bei gesetztem Flag automatisch im summary-Reading die Jahreszahl z.B. 1971 gegen das Alter (46) ersetzt?

finde ich nicht. das alter steh im reading age, warum also 2 mal anzeigen per default. dann kommt der nächste mit "ich will das alter in summary aber nicht in () sondern {}" oder mit dem satz "xyz wird xx jahre alt". da sehe ich nur 1 weg:
eine art "substsummary" attr wo jeder seinen quark selber definieren muss
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #30 am: 15 Februar 2017, 12:23:54 »
Überredet. Macht wohl deutlich mehr Sinn.
Danke an dieser Stelle nochmal für Deinen "Support". Das Modul ist wirklich eine Bereicherung!

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #31 am: 06 April 2017, 16:49:35 »
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....

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #32 am: 06 April 2017, 18:58:38 »
teste bitte mal dieses update

https://github.com/chris1284/CALVIEW/
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #33 am: 07 April 2017, 09:35:32 »
Läuft einwandfrei! Danke, das war mal wieder schnell!

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #34 am: 07 April 2017, 15:42:41 »
bei mir auch, ist morgen im update. danke fürs testen
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline Porsti

  • Full Member
  • ***
  • Beiträge: 167
Antw:Geburtstagskalender, Alter berechnen
« Antwort #35 am: 21 April 2017, 07:39:14 »
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 5.8  auf Raspberry 3
Eltako Enocean FGW14-USB / FAM14 / FTD 14 / FTS14TG / FSB14 / FSSA-230V
Homematic HM-CC-RT-DN / HM-TC-IT-WM-W-EU / HM-SEC-SCo / HM-LC-SW1-PL2
1-Wire Ds18b20, SIGNALduino

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #36 am: 21 April 2017, 07:49:51 »
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 )
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline trinitywhm

  • Full Member
  • ***
  • Beiträge: 111
Antw:Geburtstagskalender, Alter berechnen
« Antwort #37 am: 26 Juli 2017, 22:07:29 »
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?

Offline chris1284

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3747
Antw:Geburtstagskalender, Alter berechnen
« Antwort #38 am: 31 Juli 2017, 17:43:25 »
ich habe alle geburstage als serientermin eingetragen. ganztägig mit jährlicher wiederholung, ende nie. hast du evtl eine erinnerung eingestelllt,  2tage vorher?
#HP Proliant MicroServer Gen8: FHEM, SAMBA, Docker:PLEX, HABridge,Homebridge
#CCU2 (bald 3): Heizung, Schalter, Sensoren, Remotes
#nanoCUL868: lacrossmode für Außensensor
#3 2Bay Nas im 2 täglichen Wechsel fürs Backup, überwacht in FHEM

Offline trinitywhm

  • Full Member
  • ***
  • Beiträge: 111
Antw:Geburtstagskalender, Alter berechnen
« Antwort #39 am: 31 Juli 2017, 22:04:27 »
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.

Offline M.Piet

  • Full Member
  • ***
  • Beiträge: 145
Antw:Geburtstagskalender, Alter berechnen
« Antwort #40 am: 08 Januar 2018, 14:22:23 »
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.

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #41 am: 08 Januar 2018, 15:44:49 »
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.
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline M.Piet

  • Full Member
  • ***
  • Beiträge: 145
Antw:Geburtstagskalender, Alter berechnen
« Antwort #42 am: 11 Januar 2018, 13:46:56 »
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.

Offline tomster

  • Sr. Member
  • ****
  • Beiträge: 799
Antw:Geburtstagskalender, Alter berechnen
« Antwort #43 am: 11 Januar 2018, 15:55:37 »
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>

Offline elmer

  • Full Member
  • ***
  • Beiträge: 194
Antw:Geburtstagskalender, Alter berechnen
« Antwort #44 am: 30 Januar 2018, 04:44:07 »
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?

 

decade-submarginal