Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Zeitdifferenz in Bindings?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Zeitdifferenz in Bindings?

    This topic has been deleted. Only users with topic management privileges can see it.
    • SBorg
      SBorg Forum Testing Most Active @Termina last edited by

      @Termina

      {akt:system.adapter.admin.0.alive.ts; zstempel:deconz.0.Sensors.33.temperature.lc; uptime:0_userdata.0.Aqara_max_Updatezeit; akt - zstempel > (uptime*(60000)) ? "red" : "#4d4f51"} 
      

      Solange deine "uptime" in Ganzzahlminuten ist 😊

      1 Reply Last reply Reply Quote 1
      • OliverIO
        OliverIO @Termina last edited by OliverIO

        @Termina

        ok dann schritt für schritt

        1. lege ein input widget an und setze es auf deinen datenpunkt
          0_userdata.0.Aqara_max_Updatezeit
        2. trage mal in diesen datenpunk eine minutenzahl ein
        3. trage diesen ausdruck in einem input widget in color ein. problem ist, das hier die Farbe sich nur auf das Inputlabel auswirkt und nicht auf die Farbe der Eingabezahl.
        {akt:system.adapter.admin.0.alive.ts; zstempel:deconz.0.Sensors.33.temperature.lc; uptime:{0_userdata.0.Aqara_max_Updatezeit x 60000}; akt - zstempel > uptime ? "red" : "#4d4f51"}
        

        das müsste es gewesen sein.

        1 Reply Last reply Reply Quote 0
        • T
          Termina last edited by

          @SBorg
          Vielen Dank, das scheint es gewesen zu sein! 🙂 War bei meinen Tests schon mal nah dran, hatte aber immer geschweifte Klammern genutzt...

          @OliverIO
          Auch Dir lieben Dank für die Hilfe!

          1 Reply Last reply Reply Quote 0
          • C
            Coffeelover last edited by

            Hi,

            ich hoffe, ich darf mich mit meinem Anliegen hier mit dranhängen:

            Ich habe ein Binding, welches eine Bedingung abprüft. Als Ergebnis soll einer von zwei Datenpunkten ausgegeben werden. Das funktioniert auch. Problem: Ich bekomme diese Werte nicht formatiert.
            Ohne die Abfrage funktioniert die Formatierung 1a.

            Binding Formatierung:

            {tr-064.0.devices.Handy-S9.lastActive-ts;date(DD.MM.YYYY hh:mm)}
            
            

            Abfrage:

            {a:fb-checkpresence.0.Name.presence;b:tr-064.0.devices.Handy-S9.lastActive-ts;c:tr-064.0.devices.Handy-S9.lastInactive-ts;a == "false" ? c :: b}
            

            Wie bekomme ich nun das Ergebnis der Abfrage wieder als Datum?
            VG

            SBorg OliverIO 2 Replies Last reply Reply Quote 0
            • SBorg
              SBorg Forum Testing Most Active @Coffeelover last edited by

              @Coffeelover Hi, da du weder mit "c" noch mit "b" rechnest, müsste es funktionieren den TS vorher zu konvertieren. Versuche mal:

              {a:fb-checkpresence.0.Name.presence; b:tr-064.0.devices.Handy-S9.lastActive-ts;date(DD.MM.YYYY hh:mm); c:tr-064.0.devices.Handy-S9.lastInactive-ts;date(DD.MM.YYYY hh:mm); a == "false" ? c : b}
              
              C 1 Reply Last reply Reply Quote 0
              • C
                Coffeelover @SBorg last edited by

                @SBorg Danke, das habe ich versucht. Leider ohne Erfolg, es wird weiterhin UNIX ausgegeben. Habe es auch noch mit einer Klammer versucht, aber auch das klappt nicht.

                SBorg 1 Reply Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active @Coffeelover last edited by

                  @Coffeelover Ist der Timestamp ein "echter" Unix oder wie beim ioB üblich einer in Nanosekunden? Sonst müsstest du ihn vorher noch mit 1000 multiplizieren.

                  1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @Coffeelover last edited by OliverIO

                    @Coffeelover

                    Das müsste funktionieren.
                    Du hattest übrigens hinten 2 Doppelpunkte

                    {a:fb-checkpresence.0.Name.presence;b:tr-064.0.devices.Handy-S9.lastActive-ts;c:tr-064.0.devices.Handy-S9.lastInactive-ts;a == "false" ? vis.formatDate(parseInt(c),"DD.MM.YYYY hh:mm") : vis.formatDate(parseInt(b),"DD.MM.YYYY hh:mm")}
                    

                    Hintergrund für diese Notation.
                    Aufgrund deiner Notation (Datenpunkt wird einer Variable zugewiesen, Fragezeichenoperator)
                    wird das Konstrukt intern in javascript umgewandelt.

                    Dadurch erkennt vis den vis-Befehl date(DD.MM.YYYY hh:mm) nicht mehr und man muss
                    die vis-javascript-funktion aufrufen. Diese nennt sich formatDate.

                    Da die Zuweisung eines Datenpunkts zu einer Variable immer als string interpretiert wird und der ursprüngliche Datentyp nicht beachtet wird (hat was mit dem folgenden Issue zu tun https://github.com/ioBroker/ioBroker.vis/issues/263) und die formatDate für timestamps nur mit number funktioniert, muss die variable nochmal in ein int umgewandelt werden.

                    Ohne debugging in den vis-code hätte ich das auch nicht richtig aufschreiben können.

                    oweitman created this issue in ioBroker/ioBroker.vis

                    closed JSON-Datapoint not usable in binding #263

                    C 1 Reply Last reply Reply Quote 1
                    • C
                      Coffeelover @OliverIO last edited by

                      @OliverIO Das hat funktioniert. Vielen Dank - auch für die Erläuterung. Ist das mit dem :: ein Problem? Ich habe das aus kopierten Widgets immer wieder so übernommen und augenscheinlich auch die richtige Funktionalität.

                      @SBorg Ja, ein echter Unix; ohne den Vergleich funktioniert es ja auch.

                      OliverIO 1 Reply Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Coffeelover last edited by

                        @Coffeelover
                        ich hab nochmal reingeschaut.
                        das wird vor Ausführung irgendwo ausgefiltert.
                        von daher kein Problem.
                        Aber formal für javascript ist es falsch und führt im normalen Programmcode zu einem Fehler

                        C 1 Reply Last reply Reply Quote 0
                        • C
                          Coffeelover @OliverIO last edited by

                          @OliverIO Wieder was gelernt.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          884
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          vis
                          6
                          43
                          2488
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo