Ankündigung

Einklappen
Keine Ankündigung bisher.

Minuten in Uhrzeit umrechnen

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

    Minuten in Uhrzeit umrechnen

    Moin,
    ich bekomme über das TCP Binding eine Zahl z.B. 375 und möchte diese in eine Uhrzeit umrechnen und ausgeben. Durch 60 teilen habe ich noch hinbekommen, aber wie kann ich dann weiterrechnen ?
    Der Weg ist mir klar, allerdings der Code will nicht ....

    Hier mein Code in der Rule:

    Code:
          
    import org.openhab.core.library.types.*
    import org.openhab.model.script.actions.*
    import java.lang.*
    
    rule "domiqs"
            when
                Item domiq received update
            then
                var txt = domiq.state.toString.toLowerCase
                val String[] txtleer
                var Integer anzahl = txt.split("\\s+").size
                txtleer = txt.split("\\s+")
                var i = 0
                var Double zahl
                var Integer
                var String[] txtheiz_wecker
                
            for (i: 0 .. (anzahl - 1))
                if (txtleer.get(i).contains("var.heizungm") {
                    txtheiz_wecker = txtleer.get(i).split("=")
                    zahl = new Double(txtheiz_wecker.get(1))                
                    zahl = (zahl / 60)
                    //zahlint = new Integer(zahl).intValue
                    //zahl2 =(zahl - floor(zahl / 60) * 60))
                    //zahlint = new Integer(zahl).doubleValue
                    heiz_wecker.postUpdate(zahl)
                }
            }
    end
    An den Kommentarzeilen kann man meine kläglichen Versuche sehen ;-)
    Zuletzt geändert von koboldo; 09.03.2015, 12:32.
    OpenHAB 1.6.2 auf AsRock Q1900 NAS mit Openmediavault, Java8 Version 1.8.0_33-0031

    #2
    Also,
    Stunden = Zahl Modulo 60 (h=var % 60)
    und die
    Minuten = Zahl -Stunden * 60 (m=var - h*60)

    Wenn es die Uhrzeit des aktuellen Tages sein soll, wäre evtl. now.minusDays(1).toDateMidnight.plusMinutes(zahl) die einfachere Variante.

    Edit: Wo ich gerade darüber nachdenke, fällt mir auf, dass es genau anders herum ist, Zahl modulo 60 ist die Minute und (Zahl minus minute)/60 ist die Stunde...

    Kommentar


      #3
      Moin...
      also ich bekomme hier keine der beiden Versionen zum laufen :-(
      OpenHAB 1.6.2 auf AsRock Q1900 NAS mit Openmediavault, Java8 Version 1.8.0_33-0031

      Kommentar


        #4
        Probiers mal so

        Moin,

        mit folgender rule: (JeeLink1 sind meine geschwätzigen Temperatursensoren, die sollen nur die Rule triggern.)


        Code:
        import org.openhab.core.library.types.*
        
        rule "Time calculator"
           when 
                Item JeeLink1 received update
           then
            logWarn("test.rules", "Time calculator called-4")
            var Integer minutes = new Integer("365")
            var Integer h = minutes / 60
            var Integer m = minutes % 60
            var String hhmm = String::format("%02d:%02d", h, m)
            
            logWarn("test.rules", "Time calculator called, minutes " + minutes + ", " + h + ":" + m + ", " + hhmm)
        end
        ist die Ausgabe:

        2015-03-05 17:57:19.029 [WARN ] [penhab.model.script.test.rules] - Time calculator called, minutes 365, 6:5, 06:05

        Kommentar


          #5
          Super, funktioniert :-)
          OpenHAB 1.6.2 auf AsRock Q1900 NAS mit Openmediavault, Java8 Version 1.8.0_33-0031

          Kommentar

          Lädt...
          X