Laufende Wochenzahl errechnen
-
- Beiträge: 104
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Laufende Wochenzahl errechnen
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
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
- udo1toni
- Beiträge: 13948
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Laufende Wochenzahl errechnen
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
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
-
- 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
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
(Dieser Post kann aus Übersichtsgründen gerne anschließend gelöscht werden)
Danke
- udo1toni
- Beiträge: 13948
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Laufende Wochenzahl errechnen
Danke für den Hinweis
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 104
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Laufende Wochenzahl errechnen
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.
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.
- peter-pan
- Beiträge: 2568
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Laufende Wochenzahl errechnen
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):
Ein Eintrag in deiner "exec.whitelist in /etc/openhab/misc ($OPENHAB_CONF/misc):
Ein Thing in der "exec.things":
Ein Item in dein .items-Datei:
Es gibt bestimmt bessere Möglichkeiten, aber für den Anfang ??!!
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
Code: Alles auswählen
/bin/bash /etc/openhab/scripts/weekyear.sh
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((.*?))"]
Code: Alles auswählen
String WeekYear "Kalenderwoche [%s] " <calendar> (gSystem) { channel="exec:command:my_week:output"}
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian
-
- Beiträge: 104
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Laufende Wochenzahl errechnen
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 so aus.
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 so aus.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
-
- Beiträge: 1161
- Registriert: 4. Nov 2019 22:08
Re: Laufende Wochenzahl errechnen
Da fehlt ja nur noch ‚letzter -gang‘
Sehr detaillierte Übersicht!!
Sehr detaillierte Übersicht!!
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3
- udo1toni
- Beiträge: 13948
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Laufende Wochenzahl errechnen
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.
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
- peter-pan
- Beiträge: 2568
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Laufende Wochenzahl errechnen
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 ) ...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