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:

Re: Laufende Wochenzahl errechnen

Beitrag von PJH »

Hallo @udo1toni, danke für den Hinweis.

Ich bin mir nicht sicher, ob das Runden für meine Berechnung der Wochennummer hilfreich ist, aber ich möchte es ausprobieren.

Mein Berechnungscode lautet

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

wo muss denn da "Math::round()" hin?

Danke und schöne Grüße. PJH

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 »

PJH hat geschrieben: 7. Sep 2021 14:12 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 erstSitemap.jpg so aus.
Bekommst du die ganzen Werte aus einem Binding oder ermittelst du die selbst?
Sind interessante Dinge bei, die halt nicht nur Wochennummer sind um die es in diesem Thread geht.

Kannst du dazu (wenn es kein Binding ist) ein extra Thread erstellen und uns die einzelnen Punkte mal vorstellen?

Gruß iBot

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

Re: Laufende Wochenzahl errechnen

Beitrag von PJH »

Hallo @iBot, letztendlich kommen alle Werte irgendwie aus einem Binding (Astro, NTP, OpenWeatherMap), und werden dann entsprechend extrahiert oder umgerechnet.

Da es doch ein bisschen umfangreich ist frage ich mal so: was genau möchtest Du wissen?

Schöne Grüße. PJH

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 »

...eine einfache Variante könnte so aussehen:

Code: Alles auswählen

rule "Week of the Year calculated and rounded"
when
    Item Dummy_4 changed to ON
then
   var vDayOfYear = now.getDayOfYear
   logInfo("datumtest1", "day of the year is {}", vDayOfYear)
   var vWeekYear = Math::round(vDayOfYear/7+0.5)
   logInfo("datumtest1", "aktuelle Woche {} ", vWeekYear)
   var vWeekYear1 = Math::round(vDayOfYear/7-0.5)
   logInfo("datumtest1", "aktuelle Woche {} ", vWeekYear1)
//   lfdWoche.postUpdate(vWeekYear1)
//   lfdWoche.postUpdate(Math::round(vDayOfYear/7-0.5))
end
Aber wie Udo schon schrieb, dass ist suboptimal (beim Aufrunden bist du da schon in Woche 37).

Logger:

Code: Alles auswählen

2021-09-09 15:33:04.665 [INFO ] [se.smarthome.model.script.datumtest1] - day of the year is 252 
2021-09-09 15:33:04.668 [INFO ] [se.smarthome.model.script.datumtest1] - aktuelle Woche 37 
2021-09-09 15:33:04.671 [INFO ] [se.smarthome.model.script.datumtest1] - aktuelle Woche 36 
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, ja das ist so, deshalb beobachte ich erst einmal, wieweit meine einfache Division stimmt.

Ich habe aber die letzte Zeile ausprobiert (ohne "-0.5") und das funktioniert, zumindest derzeit auch. Ich werde beobachten.

Heute gibt's ja nichts zu überprüfen, heute kommt ohnehin glatt 36 raus.

Vielen Dank. PJH

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 »

Aber am Montag hast du das Problem so wieder:
Logger:

Code: Alles auswählen

2021-09-09 22:17:27.054 [INFO ] [se.smarthome.model.script.datumtest1] - day of the year is 256
2021-09-09 22:17:27.058 [INFO ] [se.smarthome.model.script.datumtest1] - aktuelle Woche 37 
2021-09-09 22:17:27.062 [INFO ] [se.smarthome.model.script.datumtest1] - aktuelle Woche1 36 
2021-09-09 22:17:27.065 [INFO ] [se.smarthome.model.script.datumtest1] - aktuelle Woche2 36 
2021-09-09 22:17:27.067 [INFO ] [se.smarthome.model.script.datumtest1] - aktuelle Woche3 36 
Regel:

Code: Alles auswählen

rule "Week of the Year calculated "
when
    Item Dummy_4 changed to ON
then
   var vDayOfYear = 256

   logInfo("datumtest1", "day of the year is {}", vDayOfYear)
   var vWeekYear = Math::round(vDayOfYear/7+0.5)   // aufgerundet
   logInfo("datumtest1", "aktuelle Woche {} ", vWeekYear)
   var vWeekYear1 = Math::round(vDayOfYear/7-0.5)  // abgerundet
   logInfo("datumtest1", "aktuelle Woche1 {} ", vWeekYear1)
      var vWeekYear2 = Math::round(vDayOfYear/7)   // ungerundet
   logInfo("datumtest1", "aktuelle Woche2 {} ", vWeekYear2)
      var vWeekYear3 =vDayOfYear/7                 // ungerundet ohne Funktion "Math"
   logInfo("datumtest1", "aktuelle Woche3 {} ", vWeekYear3)

//   lfdWoche.postUpdate(vWeekYear1)
//   lfdWoche.postUpdate(Math::round(vDayOfYear/7-0.5))
end
Ich denke so wird das nichts.
Leider habe ich im Moment keine andere Idee als die weiter vorne beschriebene.
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, ja das ist richtig, aber was ist wenn man bei der Division durch 7 nur die Stellen vor dem Komma auswertet?

Schöne Grüße. Paul

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 »

PJH hat geschrieben: 9. Sep 2021 13:40 Hallo @iBot, letztendlich kommen alle Werte irgendwie aus einem Binding (Astro, NTP, OpenWeatherMap), und werden dann entsprechend extrahiert oder umgerechnet.

Da es doch ein bisschen umfangreich ist frage ich mal so: was genau möchtest Du wissen?

Schöne Grüße. PJH
Hallo PJH,

folgendes würde mich interessieren:
Aktuelle Jahreszeit
Nächste Jahreszeit
Tages Nummer
Aktuelles Sternzeichen
Mond und Sonnenphasen hast du alle aus dem Astro Binding oder noch von woanders?
Welches Wetter Binding nutzt du für die Vorhersage?

Aber vllt. wirklich in einem extra Thread wird sonst so Off Topic.

Gruß iBot

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

Re: Laufende Wochenzahl errechnen

Beitrag von PJH »

@iBot Wo meinst Du, in welche Rubrik soll ich meine Antwort einstellen, ich kenne mich hier im Forum nicht wirklich aus.

Gruß. Paul-Joachim Haucke

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

Re: Laufende Wochenzahl errechnen

Beitrag von PJH »

Hallo @uodo1toni, @peter-pan, noch eine Versuch.

Wenn man eine Regel erstellt, die nur abrundet, wenn der Nachkommaanteil >.5 ist.

Das müsste doch funktionieren. Nur, ich weiß nicht wie man den Nachkommaanteil ausformatieren kann.

Ihr wisst das sicherlich.

Schöne Grüße. PJH

Antworten