Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Zeitdifferenz in Bindings?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    848

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Zeitdifferenz in Bindings?

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vis
43 Beiträge 6 Kommentatoren 3.5k Aufrufe 8 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T 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?

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    schrieb am zuletzt editiert von OliverIO
    #31

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

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    T 1 Antwort Letzte Antwort
    0
    • OliverIOO 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 Offline
      T Offline
      Termina
      schrieb am zuletzt editiert von
      #32

      @OliverIO sagte in Zeitdifferenz in Bindings?:
      ...
      Hui, nun ist mir ein wenig schwindelig ;) :relieved:

      Dein letzter Absatz scheint aber das zu beinhalten, was ich gerne möchte. Nun weiß ich nicht, was Du mir mit dem Code sagen möchtest, denn das ist ja "meiner" und funktioniert ja nicht.

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

      Ich möchte ja gerne je nach Situation alle Datenpunkte farblich anzeigen lassen, die seit x-Minuten (0_userdata.0.Aqara_max_Updatezeit) keine neuen Daten mehr geliefert haben. Den Wert x-Minuten möchte ich dann individuell im VIS ändern können. Das funktioniert auch einwandfrei, sobald ich keine Berechnung im Binding mache und im Input ms-Werte eintrage. Dies ist aber ja eher weniger komfortabel. Oder siehst Du da grundsätzlich keine Möglichkeit? Konnt Dir trotz mehrmaligem Lesens nicht zu 100% folgen, was Du mir sagen möchtest - sry! :innocent:

      SBorgS OliverIOO 2 Antworten Letzte Antwort
      0
      • T Termina

        @OliverIO sagte in Zeitdifferenz in Bindings?:
        ...
        Hui, nun ist mir ein wenig schwindelig ;) :relieved:

        Dein letzter Absatz scheint aber das zu beinhalten, was ich gerne möchte. Nun weiß ich nicht, was Du mir mit dem Code sagen möchtest, denn das ist ja "meiner" und funktioniert ja nicht.

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

        Ich möchte ja gerne je nach Situation alle Datenpunkte farblich anzeigen lassen, die seit x-Minuten (0_userdata.0.Aqara_max_Updatezeit) keine neuen Daten mehr geliefert haben. Den Wert x-Minuten möchte ich dann individuell im VIS ändern können. Das funktioniert auch einwandfrei, sobald ich keine Berechnung im Binding mache und im Input ms-Werte eintrage. Dies ist aber ja eher weniger komfortabel. Oder siehst Du da grundsätzlich keine Möglichkeit? Konnt Dir trotz mehrmaligem Lesens nicht zu 100% folgen, was Du mir sagen möchtest - sry! :innocent:

        SBorgS Offline
        SBorgS Offline
        SBorg
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #33

        @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 :blush:

        LG SBorg ( SBorg auf GitHub)
        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

        1 Antwort Letzte Antwort
        1
        • T Termina

          @OliverIO sagte in Zeitdifferenz in Bindings?:
          ...
          Hui, nun ist mir ein wenig schwindelig ;) :relieved:

          Dein letzter Absatz scheint aber das zu beinhalten, was ich gerne möchte. Nun weiß ich nicht, was Du mir mit dem Code sagen möchtest, denn das ist ja "meiner" und funktioniert ja nicht.

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

          Ich möchte ja gerne je nach Situation alle Datenpunkte farblich anzeigen lassen, die seit x-Minuten (0_userdata.0.Aqara_max_Updatezeit) keine neuen Daten mehr geliefert haben. Den Wert x-Minuten möchte ich dann individuell im VIS ändern können. Das funktioniert auch einwandfrei, sobald ich keine Berechnung im Binding mache und im Input ms-Werte eintrage. Dies ist aber ja eher weniger komfortabel. Oder siehst Du da grundsätzlich keine Möglichkeit? Konnt Dir trotz mehrmaligem Lesens nicht zu 100% folgen, was Du mir sagen möchtest - sry! :innocent:

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #34

          @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.

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          1 Antwort Letzte Antwort
          0
          • T Offline
            T Offline
            Termina
            schrieb am zuletzt editiert von
            #35

            @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 Antwort Letzte Antwort
            0
            • C Offline
              C Offline
              Coffeelover
              schrieb am zuletzt editiert von
              #36

              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

              SBorgS OliverIOO 2 Antworten Letzte Antwort
              0
              • C Coffeelover

                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

                SBorgS Offline
                SBorgS Offline
                SBorg
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #37

                @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}
                

                LG SBorg ( SBorg auf GitHub)
                Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                C 1 Antwort Letzte Antwort
                0
                • SBorgS SBorg

                  @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 Offline
                  C Offline
                  Coffeelover
                  schrieb am zuletzt editiert von
                  #38

                  @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.

                  SBorgS 1 Antwort Letzte Antwort
                  0
                  • C Coffeelover

                    @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.

                    SBorgS Offline
                    SBorgS Offline
                    SBorg
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #39

                    @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.

                    LG SBorg ( SBorg auf GitHub)
                    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                    1 Antwort Letzte Antwort
                    0
                    • C Coffeelover

                      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

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      schrieb am zuletzt editiert von OliverIO
                      #40

                      @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.

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      C 1 Antwort Letzte Antwort
                      1
                      • OliverIOO 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.

                        C Offline
                        C Offline
                        Coffeelover
                        schrieb am zuletzt editiert von
                        #41

                        @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.

                        OliverIOO 1 Antwort Letzte Antwort
                        0
                        • C Coffeelover

                          @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.

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von
                          #42

                          @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

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          C 1 Antwort Letzte Antwort
                          0
                          • OliverIOO OliverIO

                            @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 Offline
                            C Offline
                            Coffeelover
                            schrieb am zuletzt editiert von
                            #43

                            @OliverIO Wieder was gelernt.

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            750

                            Online

                            32.6k

                            Benutzer

                            82.1k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe