Laufende Wochenzahl errechnen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

PJH
Beiträge: 104
Registriert: 23. Mai 2017 08:32
Wohnort: Duisburg
Kontaktdaten:

Laufende Wochenzahl errechnen

Beitrag von PJH »

Hallo sehr geehrte Forumsteilnehmer, ich habe 'mal wieder eine Frage.

Da wohl die Funktion "get.WeekOfYear" nicht (mehr) unterstützt wird, habe ich mir die Wochennummer errechnet und zwar

"lfdWoche.postUpdate((lfdTag.state as DecimalType) / (7))"

lfdTag habe ich mit "now.getDayOfYear" übernommen.

So, das klappte auch bis jetzt. Ab heute aber nicht mehr. Der laufende Tage ist heute 247 und geteilt durch 7 ergibt sich 35.28571429 und angezeigt wird 35. Die laufende Woche ist ab heute aber 36.

Wie kann ich das Ergebnis aufrunden, oder gibt es eine andere Funktion um die laufende Woche zu erhalten.

Vielen Dank für eure freundliche Hilfe und einen schönen Gruß. PJH

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

Re: Laufende Wochenzahl errechnen

Beitrag von udo1toni »

Die Berechnung ist grundsätzlich falsch :)

Die erste Kalenderwoche ist die mit dem ersten Donnerstag des Jahres. Die amerikanische Wochenberechnung nimmt immer die Woche, in der der 1.1. liegt als 1 Kalenderwoche (und damit zwangsläufig die Woche, welche den 31.12. enthält als 53 Woche des laufenden Jahres. Nach DIN gibt es die 53. Woche nur in den Jahren, die mit einem Donnerstag beginnen oder enden. Es ist also etwas tricky, die Kalenderwoche korrekt zu berechnen.

Soweit ich die Doku verstanden habe, musst Du Weekfields und weekOfWeekBasedYear() verwenden, um auf die Kalenderwoche zugreifen zu können.

Schau mal hier: https://www.geeksforgeeks.org/weekfield ... -examples/

Ich liebe die Oracle Entwickler für ihre einfachen Lösungen...

Vielleicht kann jemand im englischen Forum noch eine elegantere Methode zeigen :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

ibot1989
Beiträge: 99
Registriert: 30. Jul 2016 19:51
Wohnort: östlich von Hamburg, südlich von Lübeck, nördlich von Geesthacht

Re: Laufende Wochenzahl errechnen

Beitrag von ibot1989 »

Könnte ein Mod diesen Thread in die richtige Kategorie verschieben, dass hat doch nichts mit Bekanntmachungen zu tun ;)
(Dieser Post kann aus Übersichtsgründen gerne anschließend gelöscht werden)

Danke

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

Re: Laufende Wochenzahl errechnen

Beitrag von udo1toni »

Danke für den Hinweis :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

PJH
Beiträge: 104
Registriert: 23. Mai 2017 08:32
Wohnort: Duisburg
Kontaktdaten:

Re: Laufende Wochenzahl errechnen

Beitrag von PJH »

Hallo @udo1toni, vielen Dank für die tolle und umfangreiche Erklärung und den Link.

Eigentlich möchte ich hauptsächlich wissen, wie man eine Zahl auf-/abrunden kann und ob das überhaupt in openHAB 3 möglich ist.

Übrigens funktioniert meine kleine Berechnung weiter, openHAB hat nur nicht aktualisiert. Nach einem Neustart des Systems klappt alles wieder.

Schöne Grüße. PJH

PS: Tut mir leid, dass ich meine Frage in der falschen Rubrik gestellt habe. Ich habe gesucht und dann bin ich wohl eben in der falschen Rubrik gelandet. Werde mir Mühe geben, dass das nicht wieder vorkommt.

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

Re: Laufende Wochenzahl errechnen

Beitrag von peter-pan »

Auf die Schnelle könnte ich evtl einen kleinen Workaround anbieten. Dazu brauchst du das Exec-Binding, ein kleines Bash-Script, ein Thing, ein Item und einen Eintrag in der whitelist. Die Konfiguration habe ich per Text-Files gemacht.

Bash-Script (ich habe es "weekyear.sh genannt) in /etc/openhab/scripts ($OPENHAB_CONF/scripts):

Code: Alles auswählen

#!/bin/bash
INPUT=$(/bin/date +%V)
echo $INPUT
Ein Eintrag in deiner "exec.whitelist in /etc/openhab/misc ($OPENHAB_CONF/misc):

Code: Alles auswählen

/bin/bash /etc/openhab/scripts/weekyear.sh
Ein Thing in der "exec.things":

Code: Alles auswählen

Thing exec:command:my_week "Woche des Jahres" @ "Buero"  
                    [command="/bin/bash /etc/openhab/scripts/weekyear.sh", interval=600, timeout=30, transform="REGEX((.*?))"]
Ein Item in dein .items-Datei:

Code: Alles auswählen

String WeekYear  "Kalenderwoche [%s]  "  <calendar>    (gSystem)    { channel="exec:command:my_week:output"}
Es gibt bestimmt bessere Möglichkeiten, aber für den Anfang ??!!
kw.jpg
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

PJH
Beiträge: 104
Registriert: 23. Mai 2017 08:32
Wohnort: Duisburg
Kontaktdaten:

Re: Laufende Wochenzahl errechnen

Beitrag von PJH »

Hallo @peter-pan, danke für die Mühe.

Da bei mir die Wochennummernberechnung mit meiner Division Tageszahl/7 bisher stimmt, lasse ich es dabei bis es nicht mehr stimmt, beschäftige mich aber mit den anderen Vorschlägen, weil sich daraus 'was lernen lässt.

Meine Sitemap sieht jetzt mal erst
Sitemap.jpg
so aus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

int5749
Beiträge: 1161
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Laufende Wochenzahl errechnen

Beitrag von int5749 »

Da fehlt ja nur noch ‚letzter 🪑-gang‘ 🤣

Sehr detaillierte Übersicht!!
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

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

Re: Laufende Wochenzahl errechnen

Beitrag von udo1toni »

Also, runden ist leicht, mit Math::round().
Gezielt aufrunden -> Math::round(Wert +.5)
Gezielt abrunden -> Math::round(Wert - .5).

Wobei es mit Sicherheit auch eine Funktion für die beiden Sonderfälle gibt. :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Laufende Wochenzahl errechnen

Beitrag von peter-pan »

PJH hat geschrieben: 7. Sep 2021 14:12 Meine Sitemap sieht jetzt mal erst ...so aus.
Gefällt mir. 👍

Ich hab die Sitemap-GUI auch noch in OH3 mitlaufen und da OH2 immer noch mein Produktiv-System ist, sieht es bei mir auch ähnlich aus. (Mit vielen Unter-Fenstern ;) )
sitemap1.jpg
sitemap2.jpg
...und du wirst sehen, dass es noch sehr viel mehr zum messen, steuern und überwachen gibt.

Und das Aussehen der Oberfläche ist letztlich Geschmackssache, ob puristisch, wie die Sitemap oder verspielt mit semantischem Modell und Widgets.

Viel Spass weiterhin.

Gruss Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Antworten