fragen zum widget

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: fragen zum widget

Beitrag 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:

Code: Alles auswählen

text1 = "Balu der Bär"
text2 = text1.padEnd(15,".")
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...)
openHAB4.3.0 stable in einem Debian-Container (bookworm) (Proxmox 8.3.1, LXC), mit openHABian eingerichtet

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

Re: fragen zum widget

Beitrag 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
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.0 openhabian

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

Re: fragen zum widget

Beitrag von udo1toni »

Ich gehe davon aus, dass es so korrekt wäre:

Code: Alles auswählen

items.remind_birth1_Title_2.state.match(/[0-9]+/)
oder alternativ

Code: Alles auswählen

items.remind_birth1_Title_2.state.match(/\d+/)
\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)
openHAB4.3.0 stable in einem Debian-Container (bookworm) (Proxmox 8.3.1, LXC), mit openHABian eingerichtet

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

Re: fragen zum widget

Beitrag 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
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.0 openhabian

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

Re: fragen zum widget

Beitrag von udo1toni »

Ja, logisch, ist ja nach dem match() auch ein String...
openHAB4.3.0 stable in einem Debian-Container (bookworm) (Proxmox 8.3.1, LXC), mit openHABian eingerichtet

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

Re: fragen zum widget

Beitrag 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

Antworten