Seite 4 von 4
Re: fragen zum widget
Verfasst: 8. Dez 2024 11:35
von udo1toni
Naja, man könnte halt die Leerzeichen passend auffüllen. Das Problem ist hier vor allem, dass die Formel hierzu den gleichen Term (Name, Klammern, Alter) zweimal enthalten muss, einmal als Text, einmal die Länge dieses Textes.
Ich hab mir das noch nicht näher angeschaut, aber vielleicht kann man ja sowas wie eine lokale Variable setzen?
In JavaScript sollte es die Funktion
.padEnd(length,string) geben, also ginge sowas:
Sollte dann für text2 den Inhalt "Balu der Bär..." ergeben. Ich hab aber keine Ahnung, ob das in der UI auch so geht. Mit padStart() kann man auch vorne auffüllen (wie gesagt, JavaScript...)
Re: fragen zum widget
Verfasst: 8. Dez 2024 13:47
von peter-pan
udo1toni hat geschrieben: ↑8. Dez 2024 11:35
Sollte dann für text2 den Inhalt "Balu der Bär..." ergeben. Ich hab aber keine Ahnung, ob das in der UI auch so geht. Mit padStart() kann man auch vorne auffüllen (wie gesagt, JavaScript...)
Super Idee. Das musste ich gleich mal ausprobieren:
Code: Alles auswählen
=items.remind_birth1_Title_2.state.split(",")[1].padEnd(30,".") +
items.remind_birth1_Title_2.state.split("(")[1].replace(")","").padEnd(10,".")
Das funktioniert und gibt dann so was wie "
Balu der Baer (63)........63....." Allerdings müsste man da wahrscheinlich noch einen Teilstring(Substring) mit einbauen, wenn der Name länger ist. Das hab ich jetzt nicht gemacht. Das kann aber "Balu" jetzt sicher selber raustüfteln.
Ich hab aber in diesem Zusammenhang an Udo noch eine Frage.
Ich habe noch eine andere Methode zum Extrahieren des Alters aus dem Stringtext gefunden (match), also so ungefähr:
Code: Alles auswählen
items.remind_birth1_Title_2.state.match(/[0-9.][0-9]/)
Das Ergebnis ist dann ein Zahlenwert. Allerdings weiss ich nicht, ob das der wirklich richtige Regex-Ausdruck ist. Ich hab das nur auf die "Try and Error"-Basis heraus gefunden
Re: fragen zum widget
Verfasst: 8. Dez 2024 19:41
von udo1toni
Ich gehe davon aus, dass es so korrekt wäre:
oder alternativ
\d ist ide Menge aller Ziffern im Dezimalsystem, also gleichbedeutend mit der Menge [0-9],
das + steht für "mindestens ein, beliebig viele weitere Vorkommen des vorangehenden Zeichens".
Die Slashes // wiederum stehen dafür, dass die Funktion match() den angegebenen String als Regular Expression nutzen soll.
Interessanterweise werden hier keine Anführungszeichen um die Zeichenkette erwartet (also laut Doku)
Re: fragen zum widget
Verfasst: 8. Dez 2024 20:35
von peter-pan
udo1toni hat geschrieben: ↑8. Dez 2024 19:41
Ich gehe davon aus, dass es so korrekt wäre:

Super. funktioniert (beide Versionen). Für die Ausgabe in der UI habe ich noch eine kleine Erweiterung vorgenommen, da der Wert sonst in eckigen Klammern und Hochkommas dargestellt wird.
Code: Alles auswählen
=Number.parseInt(items.remind_birth1_Title_2.state.match(/[0-9]+/))
Danke
Re: fragen zum widget
Verfasst: 8. Dez 2024 20:47
von udo1toni
Ja, logisch, ist ja nach dem match() auch ein String...
Re: fragen zum widget
Verfasst: 8. Dez 2024 23:17
von BaluderBaer
hallo zusammen,
ich bin super happy wie es jetzt funzt.
die neuen ideen werde ich im laufe der woche mal ausprobieren. ( habe spaetschicht )
Danke nocheinmal an alle von euch
und ja, es ist im grundsatz das muell widget.
angepasst ( mit eurer hilfe ) fuer Muell, Geburtstag, Hochzeit, Todestag, Kind 1, Kind 2, allgemeines, Feiertage sowie Famielien Kalender.
dieser ist durch jede person ( in ihren eigenen kalender ) aenderbar, und laeuft in openhab zusammen.
ist nun viel einfacher alle termine zu haendeln, weil in der uebersicht vorhanden, und kein kind kann mehr sagen " ich habe es gesagt, hast du es dir etwa nicht gemerkt "
nicht eingetragen ist dann nicht gesagt ( das hat mich schon ewig genervt )
Danke und noch einen schoenen rest 2 advent
Balu