Ankündigung

Einklappen
Keine Ankündigung bisher.

Neuling mit Zeitproblem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Neuling mit Zeitproblem

    Hallo zusammen,

    nachdem ich mich schon einige Zeit mit OpenHAB beschäftigt habe, habe ich jetzt mal ein Problem mit der Zeit.

    Ich möchte auf der Sitemap die aktuelle Uhrzeit darstellen.

    Basierend auf diesem Beispiel: https://github.com/theoweiss/openhab...e/master/clock

    In den Rules habe ich folgendes stehen:
    rule "Clock"
    when
    Time cron "0 0/1 * * * ?"
    then
    var String timestamp = String::format( "%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS", new Date() )
    end

    Ein "Text item=timestamp" in der Sitemap fügt mir aber leider nicht die Uhrzeit ein.

    Kann mir bitte jemand erklären, was ich falsch mache?

    Gruß Jenne

    #2
    Moin,

    meine Rule sieht wie folgt aus.

    Code:
    rule "Systemuhr updaten"
    when
        Time cron "0 * * * * ?"
    then
        DpVtSystemClock.postUpdate(new DateTimeType())
    end
    Wenn ich deine richtig interpretiere, wird sie zur Minute 0 und 1 jeweils bei Sekunde 0 getriggert, also nur einmal in der Stunde

    Gruß
    Thomas

    Kommentar


      #3
      Es gibt da ein, zwei Sachen zu beachten...
      1. ist die Herangehensweise unnötig kompliziert, mit dem NTP-Binding geht das einfach so:
      Code:
      /* NTP binding demo item */
      DateTime    Date    "Zeit [%1$tA, %1$td. %1$tB %1$tY %1$tT]" { ntp="Europe/Berlin:de_DE" }
      und in der Sitemap dann:
      Code:
      Text item=Date
      Im Item Date steht anschließend immer die aktuelle Zeit, ganz ohne Rule.

      2. Eine korrekte Uhrzeitanzeige in der UI bekommst Du trotzdem nicht, denn die Anzeige der UI wird nicht bei jeder Item-Wertänderung refreshed. Es gibt in der Classic UI einen Autorefresh, bin mir gerade unsicher, wie häufig der tutet aber leider ist damit nicht garantiert, dass die Anzeige stimmt (schon garnicht sekundengenau).
      Im verlinkten Beispiel geht es wohl um eine externe Anzeige, die mit Tinkerforge realisiert ist. Die openHAB-UI liefert nur die Stellknöpfe für die Uhr, die Uhrzeit selbst wird dann regelmäßig per Rule auf die Anzeige geschickt.

      Ansonsten ist die Cron-Schreibweise Time cron "0 0/1 * * * ?" soweit ich das sehe gleichbedeutend mit Time cron "0 * * * * ?", 0/1 steht für beginne mit Wert 0, nimm jeden darauffolgenden Wert. Wenn man also 2/7 schreibt, heißt das: beginne beim Wert 2, nimm danach jeden 7. Wert (also 9,16,23,30,37,44,51,58) Das macht natürlich mehr Sinn, wenn man z.B. 0/5 schreibt, das sind dann (im Minutenfeld) alle 5 Minuten.

      Kommentar


        #4
        Hallo,

        danke für die Hilfe.

        Ich habe die NTP-Lösung gewählt. Nach etwas suchen habe ich auch die Formatierung gefunden die ich brauche.

        DateTime Date "Zeit [%1$tR]" { ntp="Europe/Berlin:de_DE" }

        [%1$tR] gibt nur die Uhrzeit im 24h-Format zurück. Also z.B.: 21:20

        Gruß Jens

        Kommentar

        Lädt...
        X