fragen zum widget

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
udo1toni
Beiträge: 14802
Registriert: 11. Apr 2018 18:05
Answers: 230
Wohnort: Darmstadt

Re: fragen zum widget

Beitrag von udo1toni »

Wobei das Alter zu einem bestimmten Datum auszurechnen (bei bekanntem Geburtsdatum) keine große Herausforderung darstellen sollte...
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2669
Registriert: 28. Nov 2018 12:03
Answers: 27
Wohnort: Schwäbisch Gmünd

Re: fragen zum widget

Beitrag von peter-pan »

udo1toni hat geschrieben: 26. Nov 2024 21:33 Wobei das Alter zu einem bestimmten Datum auszurechnen (bei bekanntem Geburtsdatum) keine große Herausforderung darstellen sollte...
...Das ist natürlich vollkommen richtig, das war auch meine ursprüngliche Idee. Aber das Geburtsjahr ist in meinem ICS-Kalender nicht vorhanden. Dieser Kalender wird in Mozilla-Thunderbird aus den Kontakten separat generiert, leider nur mit dem aktuellen - und falls gewünscht auch mit einem historischen und auch zukünftigen - Datum, wobei man Historie und Zukunft selbst festlegen kann. Es wird dann für das jeweilige Jahr ein entsprechendes "Satzbündel" generiert.

Den Kalender muss man nur exportieren und ggf. mit einem Schlüsselwort versehen und schon hat man die Vorlage, die man einfach in

Code: Alles auswählen

url="http://<openHAB>:8080/static/geburtstage.ics"
ablegen kann.

Es gibt sicherlich auch andere Versionen (Google, etc) bei denen man in einer Cloud nach den Einträgen suchen kann, aber da kenne ich mich nicht aus bzw. will ich mich nicht mit der "Aussenwelt" austauschen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.2.3 openhabian

BaluderBaer
Beiträge: 78
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: fragen zum widget

Beitrag von BaluderBaer »

hallo peter-pan

wenn ich dich jetzt richtig verstanden habe, setzt du den wert pro geburstag per hand.
es gibt hier keinen automatismus um dieses hochzuzaehlen.
habe mir thunderbird installiert, und nur so bekomme ich diesen wert auch in den export rein.

SUMMARY:Balu der Bär (26)
SUMMARY:Balu der Bär (27)
SUMMARY:Balu der Bär (28)

geburtstag 3 x anlegen lassen und den wert danach per hand abaendern

Code: Alles auswählen

BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VEVENT
CREATED:20241127T214111Z
LAST-MODIFIED:20241127T221501Z
DTSTAMP:20241127T221501Z
UID:900b5910-3c95-4673-aba7-afa1adbbcbd7
SUMMARY:birthday Bagira (60)
RRULE:FREQ=YEARLY;COUNT=3;BYMONTH=11;BYMONTHDAY=27
DTSTART;VALUE=DATE:20241127
DTEND;VALUE=DATE:20241128
TRANSP:TRANSPARENT
X-MOZ-GENERATION:3
END:VEVENT
BEGIN:VEVENT
CREATED:20241127T221419Z
LAST-MODIFIED:20241127T221439Z
DTSTAMP:20241127T221439Z
UID:900b5910-3c95-4673-aba7-afa1adbbcbd7
SUMMARY:birthday Bagira (61)
RECURRENCE-ID;VALUE=DATE:20251127
DTSTART;VALUE=DATE:20251127
DTEND;VALUE=DATE:20251128
TRANSP:TRANSPARENT
X-MOZ-GENERATION:3
END:VEVENT
BEGIN:VEVENT
CREATED:20241127T221444Z
LAST-MODIFIED:20241127T221501Z
DTSTAMP:20241127T221501Z
UID:900b5910-3c95-4673-aba7-afa1adbbcbd7
SUMMARY:birthday Bagira (62)
RECURRENCE-ID;VALUE=DATE:20261127
DTSTART;VALUE=DATE:20261127
DTEND;VALUE=DATE:20261128
TRANSP:TRANSPARENT
X-MOZ-GENERATION:3
END:VEVENT
END:VCALENDAR
gruss
balu

BaluderBaer
Beiträge: 78
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: fragen zum widget

Beitrag von BaluderBaer »

hallo zusammen,
eine andere frage,
wenn ich hinter dem name ( title ) das geburtsjahr vom kalender mituebergebe, ist es schwierig dies dann da rauszuloeschen, in der zeile subtitle einzufuegen und daraus das alter zu errechnen ?
sorry wegen der frage, aber ich kann das nicht programmieren.
balu

Benutzeravatar
peter-pan
Beiträge: 2669
Registriert: 28. Nov 2018 12:03
Answers: 27
Wohnort: Schwäbisch Gmünd

Re: fragen zum widget

Beitrag von peter-pan »

BaluderBaer hat geschrieben: 27. Nov 2024 23:34 wenn ich dich jetzt richtig verstanden habe, setzt du den wert pro geburstag per hand.
Das ist so nicht ganz richtig.

Ich habe meine Kontakte in meinem E-Mail-Programm "Thunderbird" abgespeichert. Und natürlich auch bei bestimmten Adressen das Geburtsdatum.
In diesem E-Mail-Programm kann man auch einen automatischen Geburtstagskalender dieser Adressen erzeugen/verwalten.
thunderb.jpg
Diesen Kalender kann man als ICS-Datei exportieren, wobei die Anzahl der Jahre flexibel ist. Das dazu passende Alter errechnet das E-Mail-Programm. Wenn du da 5 eingibst, dann bekommst du einen Kalender exportiert (ICS-Format) mit den Werten von 2020 - 2028. Was du dann noch machen musst, ist das Schlüsselwort per Editor ergänzen, damit das in deinem ICAL in openHAB erkannt wird. Aber das dauert genau 2 Sekunden (Suchen.Ersetzen).

Wie gesagt ich habe keine externen Kalender (Google, etc.) aus dem Internet angebunden. Aber wenn du so einen Kalender alle paar Jahre mal gnerierst, kommst du nicht aus der Übung ;) .

Meinen Abfallkalender muss ich auch jedes Jahr neu erstellen, damit er mir entsprechend angezeigt wird. Da stell ich auch nur die ICS-Datei von meinem Abfallentsorger in die entsprechende Directory. Ich hab dann noch den einen oder anderen Dauerkalender, der sich jährlich ändert.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.2.3 openhabian

Benutzeravatar
peter-pan
Beiträge: 2669
Registriert: 28. Nov 2018 12:03
Answers: 27
Wohnort: Schwäbisch Gmünd

Re: fragen zum widget

Beitrag von peter-pan »

BaluderBaer hat geschrieben: 28. Nov 2024 08:13 wenn ich hinter dem name ( title ) das geburtsjahr vom kalender mituebergebe, ist es schwierig dies dann da rauszuloeschen, in der zeile subtitle einzufuegen und daraus das alter zu errechnen ?
Das geht bestimmt mit "split" und einer anschliessenden Subtraktion. Da ist aber @udo1toni der bessere Ansprechpartner.

Wie und wo hast du denn deinen Kalender abgespeichert ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.2.3 openhabian

Benutzeravatar
peter-pan
Beiträge: 2669
Registriert: 28. Nov 2018 12:03
Answers: 27
Wohnort: Schwäbisch Gmünd

Re: fragen zum widget

Beitrag von peter-pan »

Das mit der Anzeige des Alters hat mich doch noch etwas beschäftigt.

Unter der Voraussetzung, dass dein Namensstring etwa so aussieht:

Code: Alles auswählen

Geburtstag, Balu der Bär, 1997
...also in drei Teile, durch Kommata, getrennt.
Aus diesem String kannst du einen Array bauen, welcher die einzelnen Elemente enthält, die du über einen Index ansprechen kannst. Der "Trenner" ist in diesem Falle das Komma.

Das Ganze sieht dann so als Parameter aus:

Code: Alles auswählen

=items.remind_birth1_Title_2.state.split(",")[1] + " " + (Number.parseInt(dayjs().format('YYYY ')) - Number.parseInt(items.remind_birth1_Title_2.state.split(", ")[2]) )
und als Widget:

Code: Alles auswählen

component: oh-label-cell
config:
  color: teal
  icon: material:cake
  item: remind_birth1_Begin_0
  label: =items.remind_birth1_Title_2.state.split(",")[1] + " " +
    (Number.parseInt(dayjs().format('YYYY ')) -
    Number.parseInt(items.remind_birth1_Title_2.state.split(", ")[2]) )
  on: "true"
  stateStyle:
    color: red
    fontSize: 21px
  subtitle: =items.remind_birth1_Title_2.state.split(",")[1] + " hat " +
    items.remind_birth1_Title_2.state.split(",")[0]
  title: =Number.parseInt(items.remind_birth1_Title_2.state.split(", ")[2])
bzw. als Screenshot, so:
geburt.jpg
Es gibt bestimmt andere Möglichkeiten, aber diese sollte auch funktionieren. Du musst halt deine Feldbezeichnungen verwenden.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.2.3 openhabian

BaluderBaer
Beiträge: 78
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: fragen zum widget

Beitrag von BaluderBaer »

SUPER,

DANKE

werden es ausprobieren wenn ich in thunderbird alles drin habe,
habe auch gefunden warum ich keine anzeige des alters hatte ( war eigendlich ganz einfach, das geburstagsplugin hat gefeht )

jetzt pflege ich gerade meine daten ein und erstelle die geburstags liste.
wuste gar nicht das dies bei mir soviel datensaetze sind ..... aber mit den kontakten und den geburstag bin ich fast durch. :D
trotz editor und massenimport . :lol:
danke und ein schoenes we euch allen

Balu

BaluderBaer
Beiträge: 78
Registriert: 2. Mär 2023 20:26
Answers: 0

Re: fragen zum widget

Beitrag von BaluderBaer »

hallo peter-pan / zusammen

sorry , das ich mich so spaer erst melde, aber ich habe einige proble mit der anbindung vom thunderbird.
die anbindung geht super., die daten werden auch in drei bereichen angezeigt. ( incl sternzeichen )

zwar nicht so wie du die zeile eingestellt hast.:

Geburtstag, Balu der Bär, 1997

sondern so.:

Geburtstag, Balu der Bär, (61)

dadurch funzt natuerlich dein code nicht, da dieser auf "YYYY " angelegt ist und nicht auf das alter.
diese umstellung ist mir noch nicht gelungen.
wobei ich dies sogar besser finde, nur wie muss ich denn daraus das begurtsjahr errechnen ??

aber das ist eigendlich nicht mein hauptproblem ( was ich zur zeit suche )

beispiel.
die anzeige heute.: ( 03.12.2024 )

balu der baer 04.12.2024 ( morgen )
shirkan hat 16.12.2024
bagira 19.12.2024

die anzeige .: ( 04.12.2024 )

shirkan hat 16.12.2024
bagira 19.12.2024
nogli 21.12.2024

dies wird auch im item angezeigt.

in der datei steht auch noch balu drin. ( 04.12.2024 )

warum wird der heutige wert nicht uebergeben, sondern immer nur die werten die in der zukunft liegen, jedoch nicht die an dem gleichen tag ??
da dies im thing schon so drin steht, muss es also von der brídge kommen. in der bride steht als current title

shirkan 16.12.2024 drin

wobei eigendlich

balu der baer 04.12.2024 drin stehen sollte ( da der geburtstag am 04.12.2024 ist und die abfrage an 04.12.2024 gemacht worden ist )
in der bridge steht auch unter current title shirkan drin und nicht balu
wie gesagt, dies ist ein beispiel.
hat jemand evtl einen tipp wie bzw wo ich das aendern kann ??

danke und eine schone vor nikolaus zeit
balu

Benutzeravatar
peter-pan
Beiträge: 2669
Registriert: 28. Nov 2018 12:03
Answers: 27
Wohnort: Schwäbisch Gmünd

Re: fragen zum widget

Beitrag von peter-pan »

Also fangen wir mal so an.

1. Wenn du Thunderbird benutzt, dann brauchst du das Geburts-Jahr im Text ja gar nicht. Da wird dir das Alter ja direkt im Datensatz mitgeliefert.

Das mit dem Jahr habe ich nur als Beispiel genommen, wenn du kein Thunderbird hast und evtl. deinen Kontakt (Geburtstag) hättest ergänzen wollen. Dann wäre die Berechnung des Alters in Frage gekommen. So brauchst du das ja gar nicht, da Thunderbird das erledigt.


2. Das Geburtsjahr errechnen geht bestimmt auch mit einem Parse-Befehl und einer Subtraktion. Aber eigentlich hast du das ja in deinem Kontakt stehen.

3. Der Datensatz steht ja eigentlich so in deiner exportierten ICS-Datei:

Code: Alles auswählen

SUMMARY:Balu der Bär (61)
4. Ich öffne diese Datei dann mit einem Text-Editor und suche nach
SUMMARY:
und ersetze mit
SUMMARY:Geburtstag,

du kannst natürlich auch "Birthday" statt "Geburtstag" nehmen.

Danach sollte der Satz etwa so aussehen

Code: Alles auswählen

 SUMMARY:Birthday, Balu der Bär (61)
In deinem ICAL-Binding bzw. das dazu gehörigen Item enthält dann den Wert

Code: Alles auswählen

 Birthday, Balu der Bär (61)

und dieser Wert wird dann "gesplittet" durch den Suchbegriff ",". Danach hast du (n diesem Fall) zwei Index-Felder (Achtung! Index 0 und Index 1). D.h.:
Index-Feld 1 enthält dann " Balu der Bär (61)". Und so ist mein "normales Widget (das erste) aufgebaut.
Der Name und Geburtstag (Beispiel):

Code: Alles auswählen

=items.remind_birth1_Title_1.state.split(",")[1] + " " + items.remind_birth1_Begin_1.displayState
Das Sternzeichen hab ich einfach aus dem Astro-Binding.

5.
BaluderBaer hat geschrieben: 4. Dez 2024 12:12 aber das ist eigendlich nicht mein hauptproblem ( was ich zur zeit suche )
Ich vermute mal, das liegt an dem Parameter "datetimeStart" bzw."Start" in der UI. Da hast du vermutlich "1" drin stehen. Das solltest du dann auf "0" ändern.

.things

Code: Alles auswählen

//------------------------------------------ Geburtstagskalender -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Bridge icalendar:calendar:birthday          "Geburtstage   "      @ "Arbeitszimmer"    [ url="http://192.168.178.76:8080/static/geburtstage_2024.ics", refreshTime=720 ]
Thing  icalendar:eventfilter:birth1         "Geburtstage"          (icalendar:calendar:birthday) @ "Esszimmer"    [ maxEvents=3, refreshTime=720, datetimeUnit="DAY", datetimeStart=0, datetimeEnd=31, datetimeRound=true, textEventField="SUMMARY", textEventValue="Geburtstag", textValueType="TEXT" ]
geburtstag.jpg
Ich hoffe das klappt dann.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.2.3 openhabian

Antworten