Ankündigung

Einklappen
Keine Ankündigung bisher.

Format von Datum und Uhrzeit

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

    Format von Datum und Uhrzeit

    Hallo,
    ich möchte gern aus folgendem Format :
    2016-05-26T05:38:00
    ein:
    05:38
    machen. Hierzu versuche ich :
    Code:
    </diagram_info>
          <info format="%1$tH:%1$tM" refresh="300" styling="BluePurpleRedTemp">
            <layout colspan="4"/>
            <label>Sonnenuntergang</label>
            <address transform="OH:text">Sonnenuntergang_Time</address>
          </info>
    Die Info hole ich mir aus einem OH Item dort klappt es, wenn ich die Sitemap aufrufe bekomme ich die richtige Anzeige.
    Gruß
    Frank



    #2
    Das wird so nicht so leicht funktionieren. Denn so wie ich das verstehe (kenne mich bei OpenHAB aber nicht wirklich aus) überträgst Du so einen Text. Und für den Computer ist ein Text nun mal ein Text - und keine Zeit oder Datum.
    => Du müsstest das als datetime bzw. in diesem Fall als time übertragen.

    So ein Objekt lässt sich per Format nicht weiter formatieren, das kommt dann gleich als Datum oder Zeit raus.

    Sollte es hier aber nicht auf dem richtigen Weg gehen oder die Formatierung doch ein Thema sein, so müsstest Du mit einer eigenen format-Funktion arbeiten. Das ist etwas komplizierter, lässt aber natürlich mehr Möglichkeiten. Dazu gab's hier mal einen Thread nach dem Du suchen kannst.
    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


      #3
      In openhab bekomme ich einen Wert von meinem Item geliefert den kann ich Mappen und ich bekomme das gewünschte Format. Wenn ich nun die sitemap aufrufe wird "nur" der Teil der aus dem Mapping kommt in die html eingetragen. Wenn ich nun den gleichen Item in CV aufrufe läuft mein Mapping unter openhab nicht mehr und ich bekomme den ungemappen Wert oder Text. Warum ist das so ? Die anderen Item Aufrufe kamen alle als Werte.

      Kommentar


        #4
        So ich habe mir den Thread gefunden und ich bin ein Stück weitergekommen.Hierzu habe ich folgendes gemacht:
        Code:
              <mapping name="DateTime">
                <formula>y = x &amp;&amp; x.constructor === Date ? x.toLocaleDateString() + ' ' + x.toLocaleTimeString() : x;</formula>
              </mapping>
        .
        ,
        ,
        <layout colspan="3"/>
              <info format="%s" class="value_right" refresh="300" mapping="DateTime" styling="GreyGreen">
                <layout colspan="2"/>
                <label>Datum</label>
                <address transform="OH:datetime">ABF1_DATE</address>
              </info>
        Damit wird aus:

        2016-05-26T05:38:00

        26.05.2016 05:38:00

        Nun hätte ich gern "nur" das Datum oder "nur" die Uhrzeit, kann mir jemand sagen wie ich das mache ?


        Kommentar


          #5
          Na indem Du im Mapping nur den Teil drin lässt, den Du haben willst!
          Kind regards,
          Yves

          Kommentar


            #6
            stehe etwas auf dem Schlauch, hättest du bitte mal ein Beispiel für mich ?

            Kommentar


              #7
              Hi,

              klar, kein Problem.

              Dein Beispiel sieht ja so aus:

              Zitat von firstfacility Beitrag anzeigen
              Code:
              <mapping name="[COLOR=#FF0000]DateTime[/COLOR]">
                  <formula>y = x &amp;&amp; x.constructor === Date [COLOR=#FF0000]? x.toLocaleDateString() + ' ' + x.toLocaleTimeString() :[/COLOR] x;</formula>
              </mapping>
              Du legst Dir nun zwei Mappings an, eines für das Datum:

              Code:
              <mapping name="[COLOR=#008000]Date[/COLOR]">
                  <formula>y = x &amp;&amp; x.constructor === Date [COLOR=#008000]? x.toLocaleDateString() :[/COLOR] x;</formula>
              </mapping>
              Das zweite Mapping für die Zeit:

              Code:
              <mapping name="[COLOR=#008000]Time[/COLOR]">
                  <formula>y = x &amp;&amp; x.constructor === Date [COLOR=#008000]? x.toLocaleTimeString() :[/COLOR] x;</formula>
              </mapping>
              Der Unterschied ist rot bzw. grün markiert. Je nachdem, was Du wo brauchst, verwendest Du dann eben das entsprechende Mapping. Alles klar?
              Kind regards,
              Yves

              Kommentar


                #8
                Jep, genau so geht es. Vielen Dank für deine Hilfe.

                Kommentar


                  #9
                  Hallo zusammen,
                  ich bin gerade dabei meinen caldav-Müllkalender in die CometVisu zu intergrieren. Das Zusammenspiel zwischen dem caldav-Server und OH2-Backend funktioniert soweit. Die Übergabe von OH2 (2.0.0_b5) an die CV 0.9.2 funtioniert ebenfalls.

                  Mein Problem liegt jetzt in der Ausgabe des Datums, wann welche Mülltonne geleert wird. Mit dem o.g. Mapping von starwarsfan

                  Code:
                  <mapping name="[COLOR=#008000]Date[/COLOR]">
                  <formula>y = x &amp;&amp; x.constructor === Date [COLOR=#008000]? x.toLocaleDateString() :[/COLOR] x;</formula>
                  </mapping>

                  funktioniert das in Firefox und GoogleChrome (beides läuft und Win7) auch super:

                  datumFFGCWin7.PNG

                  Auf dem iPad hingegen erscheint Invalid Date:

                  datumSafariGCIPad.png

                  In OH2 ist das Item wie folgt angelegt:
                  Code:
                  DateTime MuellBraunZeit "Beginn [%1$tT, %1$td.%1$tm.%1$tY]"         <calendar>  { caldavPersonal="calendar:muell type:UPCOMING eventNr:1 value:START filter-name:'Leerung braune Tonne'" }
                  In der CV sieht der entsprechende XML-Teil (am Beispiel der braunen Tonne) wie folgt aus:
                  Code:
                              <info mapping="Date">
                                  <layout colspan="4" colspan-m="4" colspan-s="4"/>
                                  <label>
                                      <icon name="message_garbage" color="#884e22"/>
                                  </label>
                                  <address transform="OH:datetime">MuellBraunZeit</address>
                              </info>

                  Weiß jemand woran die ungültige Datumsausgabe liegt? Oder hat jemand das selbe Problem (lösen können)?
                  Ich wäre für Tipps und Lösungen dankbar!

                  Gruß

                  Alex :-)
                  Zuletzt geändert von cybergreen; 04.01.2017, 23:55.

                  Kommentar

                  Lädt...
                  X