Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie Datums-/Uhrzeitwerte formatieren?

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

    #16
    Wenn Du einen String wie "19.12.2015 09:41:23" siehst, dann funktioniert es, wenn Du einen wie "Sat Dec 19 2015 09:41:23 GMT+0100 (CET)", dann mag es noch nicht (das wäre die JS native Umwandlung von x in einen String).
    Und wenn Du ganz was anderes siehst, dann hat das Mapping kein Date-Objekt bekommen und Du musst weiter vorne suchen.
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    Kommentar


      #17
      Hi Chris

      Zitat von Chris M. Beitrag anzeigen
      Und wenn Du ganz was anderes siehst, dann hat das Mapping kein Date-Objekt bekommen und Du musst weiter vorne suchen.
      Genau so sieht's aus. Der Output ist nach wie vor so wie in #1 geschrieben: 2015-12-01T07:55:00

      Hm, da scheint es dann ein Problem mit der Ermittlung des Datentypes zu gehen. Muss mir wohl transform_oh.js genauer ansehen...
      Kind regards,
      Yves

      Kommentar


        #18
        Ha! Ich habs gefunden. Ich hatte in der CV-Konfig folgendes geschrieben:

        Code:
        <info format="%s" class="value_right" mapping="dateformat">
            <layout colspan="4"/>
            <address transform="OH:DateTime">Sunrise_Time</address>
        </info>
        In transform_oh.js sieht das aber so aus:

        Code:
        ...
        'datetime' : {
        ...
        Und "DateTime" != "datetime".

        Da wundert mich, dass ich bisher noch keine gröberen Probleme mit der Visu hatte, da ich alle OH-Item-Types in CamelCase geschrieben habe. Anyway, nachdem ich das nun korrigiert habe, sieht die Darstellung in der Visu nun so aus wie von Dir geschrieben. Nun muss ich mich mal weiter schlau machen, welche Möglichkeiten da bzgl. Formatierung noch bestehen...
        Kind regards,
        Yves

        Kommentar


          #19
          Hallo Zusammen!
          Ich bräuchte sowas Ähnliches. Ich scheitere daran einen DPT10.001 Wert in einem Info- Element in der CV ohne die Sekunden darzustellen. Das Feld soll die eingestellte Weckzeit für den Lichtwecker darstellen. Vielen Dank für die Unterstützung.

          Kommentar


            #20
            Dann versuch mal ein Mapping wie:
            Code:
            <mapping name="TimeHM">
               <formula>y = x &amp;&amp; x.constructor === Date ? x.getHours() + ':' + (x.getMinutes()<10?'0':'') + x.getMinutes() : x;</formula>
            </mapping>
            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

            Kommentar


              #21
              Funktioniert leider nicht. CV bleibt mit dem von dir vorgeschlagenen mapping ganz schwarz.
              Der DPT10.001 Wert kommt von linknx und nicht von OpenHab. Keine Ahnung ob das relevant ist.

              Kommentar


                #22
                Gibt es dafür inzwischen eine Lösung oder ein Mapping? Ich wollte gerne nur Tag und Monat ausgeben (z.B. 29.01 statt 29.01.2016) habe es aber noch nicht gebacken bekommen.

                Kommentar


                  #23
                  Habe das im Wiki unter Mappings dokumentiert, kann allerdings gerade nicht nach dem Link suchen...
                  Kind regards,
                  Yves

                  Kommentar


                    #24
                    Ich beteilige mich jetzt einfach mal an dem Thema und stelle mal vor, wie ich die Sachlage gelöst habe. Vielleicht nicht besonders schön, aber es funzt.

                    Ausgehend von dem vorliegenden Wert 2015-12-01T07:55:00

                    Code:
                    import org.openhab.core.library.types.*
                    import org.openhab.core.persistence.*
                    import org.openhab.model.script.actions.*
                    
                    var String[] teilen
                    var String[] teilenz
                    
                    rule "Aufgang cv.rules" 
                    
                    when
                            
                            Time cron "0 0/1 * * * ?" or
                            System started or 
                            Aufgang_cv.state changed
                                   
                    then
                    
                    teilen=Aufgang_cv.state.toString.split("T")
                    
                    postUpdate (Aufgang_cvt1, teilen.get(1))
                    
                    teilenz=Aufgang_cvt1.state.toString.split(":")
                    postUpdate (Aufgang_cvz, teilenz.get(0)+":"+teilenz.get(1))
                    
                    end
                    Damit kommt natürlich 07:55 raus. Wenn man das vollständige Datum haben will, dann einfach darauf anpassen.

                    Kommentar


                      #25
                      Zitat von starwarsfan Beitrag anzeigen
                      Habe das im Wiki unter Mappings dokumentiert, kann allerdings gerade nicht nach dem Link suchen...
                      Hi,

                      das Problem an der Formel in der Cometvisu Wiki ist das bei einem Termin Start bei z.B. 12:00 nur 12:0 in der Comet Visu angezeigt wird. Die Formel von Chris funktioniert in der Visu leider nicht x.getMinutes()<10?'0':'') da das < als Anfang Tag behandelt wird. Hat jemand eine Idee wie man dieses Problem beseitigen kann?

                      mfg René

                      Kommentar


                        #26
                        Schreib mal "&lt;" statt "<" und schau ob das was bringt
                        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                        Kommentar


                          #27
                          Super danke, so funktionierts.

                          Kommentar


                            #28
                            Hi,

                            nun habe ich ein neues Problem entdeckt. Die ausgelesene Stunde des übergebenen Datums wird auf dem Ipad in Safari und in Android falsch ausgelsen bei x.getHours() erhalter ich z.B. nicht 10 Uhr wie im Termin sondern 11. Auf den PC funktioniert das tadellos. Hat jemand eine Idee?

                            mfg René

                            Kommentar


                              #29
                              Falsche Zeitzone und/oder Sommer- vs. Winterzeit?
                              TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                              Kommentar


                                #30
                                Hi,

                                Zeitzone stimmt und Sommer Winterzeit ist nicht wählbar.

                                Kommentar

                                Lädt...
                                X