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 sagte in Zeitdifferenz in Bindings?:

      die Farben

      Farbdefinitionen brauchen eine # davor, also #red oder #ff0000
      Im HTML-Widget siehst du dann bspw. dass er green ausgibt 😉

      T OliverIO 2 Replies Last reply Reply Quote 0
      • T
        Termina @SBorg last edited by

        @SBorg Aber dann gibt er die Schrift in weiß aus, obwohl nur rot oder grün angegeben ist...

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

          @SBorg

          Das Rautezeichen # ist ein Zeichen dafür, dass nun Hexcode kommt.
          Wenn ich Klarnamen für Farben nehmen, dann keine Raute.

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

            @OliverIO Oh mann... findekeinensmilymithandaufdiestirnklatsch

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

              @OliverIO @SBorg
              Also bei mir ist es im Moment so, dass wenn ich die Daten in ein HTML schreibe, wird mir zunächst "undefined" bei Aufruf der Runtime geschrieben. Erst nach ein paar Sekunden erscheint dort die Unix - Zeit.

              Kann es daran liegen, dass er im Binding die Berechnung nicht machen kann?

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

                @Termina Eigentlich nicht. Die beiden Zeitstempel existieren ja und die Berechnung wird auf dem Client (=das Gerät von dem du die VIS aufrufst) zur Laufzeit ausgeführt. Die beiden Zeitstempel existieren doch immer und sind befüllt? Notfalls lass die beiden Datenpunkte noch mal mit ausgeben. Da muss ein Wert direkt ab Aufruf drin stehen.

                ...oder deine VIS wäre so "mächtig", dass er tatsächlich schon anzeigt bevor er zum eigentlichen rechnen kommt.

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

                  Binding:

                  {akt:system.adapter.admin.0.alive.ts; zstempel:deconz.0.Sensors.47.temperature.tc; akt - zstempel > 1 ? "red" : "green"}
                  

                  Bei Aufruf der Runtime sieht es so aus:
                  Binding_Sensoren_undefined.png

                  Nach ein paar Sekunden in der Runtime so:
                  Binding_Sensoren_mit Werte.png

                  Aufgrund meines Bindings -siehe oben- hätte es aber doch rot sein müssen, oder?

                  ? 1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User @Termina last edited by A Former User

                    @Termina @SBorg

                    Kann es sein, dass die Farben nur in Widget mit Format-Charakter klappt?
                    Schau dir mal meine Lösung oben an. Nur zum Test, ob es dann klappt.
                    Ich habe es in eine HTML-Tabelle gepackt

                    <table>
                        <tr>
                            <td>
                                {akt:system.adapter.admin.0.alive.ts; zstempel:sonoff.0.ZBox.Time.ts; akt - zstempel > 1800000 ? "❌" : "✅"}
                            </td>
                        </tr>
                    </table>
                    
                    T 1 Reply Last reply Reply Quote 0
                    • T
                      Termina @Guest last edited by

                      @HeinrichB
                      Vielen Dank für Deine Unterstützung. Aber selbst wenn ich >1 schreibe, macht er mir den grünen Haken... Ist das bei allen so?

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

                        @Termina sagte in Zeitdifferenz in Bindings?:

                        @HeinrichB
                        Vielen Dank für Deine Unterstützung. Aber selbst wenn ich >1 schreibe, macht er mir den grünen Haken... Ist das bei allen so?

                        ...also selbstverständlich mit meinen Datenpunkten angepasst! 🙂

                        ? 2 Replies Last reply Reply Quote 0
                        • ?
                          A Former User @Termina last edited by

                          @Termina eigentlich nicht. Bei mir greift diese Zeitdifferenz von 30min. Also im Skript in mSek.

                          1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @Termina last edited by

                            @Termina kannst du es Mal mit einem anderen DP ausprobieren?

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

                              @HeinrichB sagte in Zeitdifferenz in Bindings?:

                              <table>
                                  <tr>
                                      <td>
                                          {akt:system.adapter.admin.0.alive.ts; zstempel:sonoff.0.ZBox.Time.ts; akt - zstempel }
                                      </td>
                                  </tr>
                              </table>
                              

                              oder die Entscheidungslogik weglassen, dann sieht man was das Ergebnis der Berechnung ist.
                              undefined ist glaube ich auch false

                              ? 1 Reply Last reply Reply Quote 0
                              • ?
                                A Former User @OliverIO last edited by

                                @OliverIO bei mir geht es. Das Code Schnippsel war als Beispiel gedacht

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

                                  ...oder ich bin heute die "Oberpfeife" schlecht hin. Irgendwie hinterlässt allmählich 1 Jahr Baulärm der Großbaustelle gegenüber doch wohl so seine Spuren...

                                  Der Fehler ist ziemlich trivial. Es heißt nicht ".tc" sondern ".lc" was @Termina nutzt. That's all 😖
                                  Ich ändere es oben noch ab, nicht dass da noch andere drüber stolpern...

                                  Daher könnte auch das "undefined" am Anfang kommen, da er den nicht vorhandenen Wert vom Datenpunkt sucht...

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

                                    @SBorg
                                    Sry, konnte ich jetzt erst testen - es funktioniert! 🙂 Vielen Dank dafür.

                                    Unabhängig davon und ein anderes Thema (vielleicht kann mir jemand Probleme mit dem DasWetter-Adapter weiterhelfen!?
                                    Das undefined kommt leider beim ersten Aufrufs der Runtime trotzdem. Ich scheine da irgendwo eine falsche Einstellung zu haben, denn ich habe öfter bei den Deconzsensoren oder auch beim "DasWetter" keine Übermittlung der Datenpunkten und somit z.B. "NULL" stehen. 😞
                                    Im Editor habe ich "Immer rendern" angehakt - trotzdem diese Probleme. Aber wie gesagt, gehört hier dann wohl nicht zum Thema Bindings.

                                    Ganz lieben Dank an alle hier für die Unterstützung! 👍

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      Ramses123 last edited by

                                      Kennt vielleicht jemand mal einen Seite, wo das Thema Bindings richtig schön (auch für Anfänger) erklärt wird?

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

                                        @Ramses123
                                        Ich hatte schon einmal in Kurzform versucht in meinem Thread das zu erklären. Allerdings muss man sich da als Anfänger herantasten

                                        ja das mit dem binding ist nicht so einfach zu erklären.
                                        Hier erst einmal zur offiziellen Doku
                                        https://github.com/ioBroker/ioBroker.vis
                                        Binding of Objects

                                        Mit der Bindung kann man aktuell Berechnungen vornehmen, die nur im Client (also Browser) durchgeführt werden.
                                        Es gibt einige Möglichkeiten dort direkt die Daten aus Datenpunkten einzuspeisen und im begrenzten Maße Möglichkeiten dort Entscheidungen zu treffen.
                                        Diese Bindung kann ich in alle Eigenschaftenfelder eines widgets eintragen. Je nachdem wo, entstehen dann unterschiedliche Effekte. Wenn die Bindung eingetragen wird, dann wird genau diese Stelle mit dem Berechnungsergebnis aus der Bindung ersetzt. Also muss nicht nur die Bindung drin stehen, sondern ich kann auch normalen Text/Anweisungen mischen oder sogar mehr wie eine Bindung eintragen
                                        trägt man es in das HTML-Feld eines HTML-widgets ein, dann kann man Text oder sogar richtiges HTML ausgeben.
                                        trägt man das in anderes Feld wie bspw color ein, dann könnte man auf Basis eines Datenpunktes, der sagen wir mal eine der Zahlen 1,2,3 enthalten kann entscheiden welche Farbe ein Text haben soll. Das selbe geht auch mit Hintergrundfarben.
                                        Wenn man es in die Größenfelder eines widgets eintrage, dann kann man sogar dynamische Balken realisieren usw.
                                        In die Bindung kann man auch javascriptbefehle eintragen. Genau das mache ich mir zunutze, in dem ich eine Funktion bereitstelle, die nichts anders sagt als Wahr oder Falsch.
                                        Auf Basis dieser Auswertung kann ich dann verschiedene Texte erzeugen

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

                                          @OliverIO
                                          Ich würde dies nun gerne noch ein wenig ausweiten. Bisher wurden ja die 1800000ms abgefragt. Ich habe aber teilweise viele zu überprüfende Datenpunkte und möchte teilweise unterschiedliche Abfragen starten. Ich zeig mal ein Beispiel:

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

                                          Dies funktioniert, wenn ich in bei der Abfrage für 30 min in den Datenpunkt 1800000 eintrage. Wie bekomme ich es nun hin, dass ich beim Datenpunkt nur die Minuten eintrage - also Datenpunkt x 60000?

                                          Folgendes funktionierte nicht:

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

                                          oder

                                          {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"}
                                          

                                          Des Weiteren habe ich gemäß Github auch folgendes mal per HTML-Widget probiert:

                                          {0_userdata.0.Aqara_max_Updatezeit \"*(4)"}
                                          

                                          antwort ist leider : undefined

                                          Möchte das halt gerne später in der VIS über ein Input-Widget jederzeit anpassen und visualisieren können. Geht das? Jemand eine Idee?

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

                                            @Termina sagte in Zeitdifferenz in Bindings?:

                                            @OliverIO

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

                                            Dur versuchst 2 Operationen in einem zu vermanschen.
                                            Dieses Binding steht bei dir ja im color-Feld und hat als Ergebnis einen Farbwert.
                                            Durch deine Erweiterung mit x60000 multisplizierst die Uptime mit 60000. Als Ergebnis die Überprüfung nie erfolgreich sein, wenn in uptime millisekunden drin steht. Vor Augen kannst du dir das mal führen, wenn du das im Excel mal schritt für Schritt durchführst
                                            akt:system

                                            • .adapter.admin.0.alive.ts das bedeutet, hole den Wert aus dem Datenpunkt und speichere ihn in die variable akt
                                            • zstempel:deconz.0.Sensors.33.temperature.lc das bedeutet, hole den Wert aus dem Datenpunkt und speichere ihn in die variable akt
                                            • uptime:0_userdata.0.Aqara_max_Updatezeit das bedeutet, hole den Wert aus dem Datenpunkt und speichere ihn in die variable uptime
                                            • akt - zstempel > uptime x 60000 das ist die eigentliche Berechnung: also die Zahl in zstempel von akt abziehen. und prüfen ob er größer ist als die Zahl in uptime. Dein Fehler ist die Multiplikation mit 60000, daraus werden Äpfel zu Birnen und das wird nie zutreffen. Auch willst du sicherlich durch 60000 teilen wegen Milisekunden auf Minuten Ergebnis aus dieser Berechnung folgt der boolschen Algebra und ist entweder wahr/true oder falsch/false.
                                            • ausdruck ? wahraktion : falschaktion : das mit dem ? und dem doppelpunkt ist ein ternäre Ausdruck, den es in vielen programmiersprachen gibt. Umgangssprachlich kann man sagen: prüfe den ausdruck und mache bei wahr die wahraktion oder bei falsch die falschaktion hinter dem doppelpunkt

                                            da dies im feld color drin steht, kann das nur die Farbe beeinflussen.
                                            Ich weiß jetzt nicht, welches Steuerelement du hier verwendest. Ich würde es mit Basic Number versuchen.
                                            unter erweiterte Einstellungen gibt es das Feld Multiplikation. und wie wir alle noch aus der Schule wissen, ist die Multiplikation mit einer Zahl kleiner 1 eine Division 🙂

                                            {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 geht auch nicht, da dann vis dann nicht versteht welchen Datenpunkt du meinst. ausserdem gehen verschachtelte geschweifte Klammern nicht.

                                            {0_userdata.0.Aqara_max_Updatezeit \"*(4)"}
                                            

                                            antwort ist leider : undefined

                                            Auch hier versteht vis den Datenpunkt nicht. Die Berechnung muss separat nach einem weiteren semicolon durchgeführt werden.

                                            Möchte das halt gerne später in der VIS über ein Input-Widget jederzeit anpassen und visualisieren können. Geht das? Jemand eine Idee?

                                            Umsetzbar ist grundsätzlich immer alles. Manches halt mit etwas mehr Aufwand. Dein Problem ist, das die Datenpunkte in Millisekunden geführt werden und du aber nur Minuten angezeigt der eingeben möchtest. Ob das integriert in einem widget geht, glaub ich nicht. von daher würde ich dein Input-widget auf dein uptime-dp legen. Dieser Datenpunkt wird aber nur Minuten beinhalten. Dann passt auch eines deiner oben genannten ausdrücke wieder in dem du uptime vor dem vergleich mit 60000 multipizierst (da ja jetzt hier minuten drin stehen und du den wert zum vergleich auf die ebene millisekunden bringen möchtest.

                                            {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"}
                                            
                                            T 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            851
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            vis
                                            6
                                            43
                                            2430
                                            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