Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Wenn Datenpunkt älter als 14 Tage, dann

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wenn Datenpunkt älter als 14 Tage, dann

    This topic has been deleted. Only users with topic management privileges can see it.
    • Lukas VFL99
      Lukas VFL99 last edited by

      Moin,

      ich hab da mal eine Frage und zwar habe ich mir eine Visualisierung gebastelt für ein Lagersystem. Jetzt würde ich gerne auf der Vis anzeigen wenn ein Objekt dort schon länger als 14 Tage liegt. Also wenn der Datenpunkt älter als 14 Tage ist. Ist das irgendwie möglich? Und wenn ja könnte man dann die Farbe des Objektes auf der Vis ändern?

      Danke schonmal

      paul53 OliverIO 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @Lukas VFL99 last edited by paul53

        @lukas-vfl99 sagte: wenn der Datenpunkt älter als 14 Tage ist.

        Prüfung Mo-Fr um 9:00 Uhr:

        Bild_2022-01-11_172637.png

        Mit Vis kennen sich andere besser aus.

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @paul53 last edited by

          @paul53 sagte in Wenn Datenpunkt älter als 14 Tage, dann:

          Mit Vis kennen sich andere besser aus.

          Da war mir nicht eingefallen wie ich letzte Änderung in einem Binding einsetzen kann.
          Jetzt muss ja ein eigener State mit true/false befüllt werden und das Binding darauf verwendet werden.

          Aber ich fürchte wenn es heisst

          @lukas-vfl99 sagte in Wenn Datenpunkt älter als 14 Tage, dann:

          für ein Lagersystem. Jetzt würde ich gerne auf der Vis anzeigen wenn ein Objekt dort schon länger als 14 Tage liegt.

          Dass es sich nicht nur um 5 Objekte jandelt für die man ein Lagesystem baut

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

            @lukas-vfl99

            ein binding könnte so aussehen

            {lastchange:0_userdata.0.test1.lc;((new Date()-lastchange)/1000/60/24)>14}
            

            durch das anhängen von lc an den datenpunktnamen, erhält man den zeitstempel der letzen änderung. ich hoffe ich habe die umrechnung von millisekunden in tage korrekt berechnet, bitte nochmal prüfen

            https://github.com/ioBroker/ioBroker.vis

            paul53 Homoran 2 Replies Last reply Reply Quote 1
            • paul53
              paul53 @OliverIO last edited by

              @oliverio sagte: umrechnung von millisekunden in tage korrekt berechnet

              60 --> 3600

              1 Reply Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @OliverIO last edited by Homoran

                @oliverio Dann braucht @Lukas-VFL99 das Skript gar nicht, oder?
                Allerdings müsste das dann in Border.color oder backgroun.color eingetragen und noch die Farben in dem Binding definiert werden.

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

                  @homoran
                  das hat er ja nicht gesagt. er will nur was anzeigen.
                  Wir schauen wie es weitergeht.
                  Er hat auf jedenfall schon mal ein true oder ein false
                  da noch ein ?: Operator dran zu machen ist ja nicht schwer

                  Lukas VFL99 1 Reply Last reply Reply Quote 1
                  • Lukas VFL99
                    Lukas VFL99 @OliverIO last edited by

                    @oliverio @Homoran danke schonmal für eure schnelle Rückmeldung.
                    Bis jetzt sieht die Vis so aus 0af757dc-cf3c-4654-998b-a2000dc2230b-image.png
                    Das ganze sind circa 75 Plätze die als basic-HTML einen Datenpunkt wiedergeben.
                    In der Background.color steht bis jetzt --> {wert:0_userdata.0.Papa.Platz1; wert == "fällig" ? "#e31c0e": wert == "" ? "#039403" : "#203d75"}.
                    Damit lasse ich die Farbe auf grün ändern wenn der Datenpunkt leer ist. Wenn ich euch jetzt richtig verstanden habe müsste ich da also noch eine If-Abfrage rein schreiben oder?
                    Die würde dann ja ungefähr so aussehen --> {lastchange:0_userdata.0.Papa.Platz1.lc; lastchange == "((new Date()-lastchange)/1000/60/24)>14" ? "#d6061f": wert:0_userdata.0.Papa.Platz1; wert == "fällig" ? "#e31c0e": wert == "" ? "#039403" : "#203d75"}

                    Lukas VFL99 1 Reply Last reply Reply Quote 0
                    • Lukas VFL99
                      Lukas VFL99 @Lukas VFL99 last edited by

                      @OliverIO So ich habe gerade noch mal ein wenig rum gespielt und getestet.
                      Ich schaffe es jetzt, dass sich der Hintergrund nach 2 Minuten ändert. Allerdings schaffe ich es nicht das sich der Hintergrund ändert wenn nichts im Datenpunkt steht wie mache ich das? Also wie führe ich mein vorheriges Binding mit dem neuen zusammen?

                      Mein altes Binding --> {wert:0_userdata.0.Papa.Platz1; wert == "" ? "#039403" : "#203d75"}
                      Mein neues Binding zum testen --> {lastchange:0_userdata.0.Papa.Platz1.lc;((new Date()-lastchange)/1000/60)>2 ? "#d6061f" : "#00000"}

                      OliverIO Homoran 2 Replies Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @Lukas VFL99 last edited by

                        @lukas-vfl99
                        das sind 2 bedingungen und ergibt insgesamt 4 zustände

                        <14 & ==""
                        <14 & ==""

                        14 & !=""
                        14 & !=""

                        dazu musst du mit mehreren verschachtelten ?: operatoren arbeiten. da kann man leicht fehler machen. aber den abruf der 2 parameter und logische verknüpfung habe ich dire beispielhaft hier:

                        {lastchange:0_userdata.0.Papa.Platz1.lc;wert:0_userdata.0.Papa.Platz1;((new Date()-lastchange)/1000/60)>2 && wert == ""? "#d6061f" : "#00000"}
                        

                        Die verschachtelungen musst du selbst austüfteln. am besten die verschiedenen Anteile immer in Klammer setzen sonst überlagern sich die verschiedenen Bedingungen noch

                        Lukas VFL99 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Lukas VFL99 last edited by

                          @lukas-vfl99 sagte in Wenn Datenpunkt älter als 14 Tage, dann:

                          wie führe ich mein vorheriges Binding mit dem neuen zusammen?

                          ich hätte (bei Standardwidgets) das neue Binding im Rahmen gesetzt, so dass ein roter Rahmen entsteht, wenn > 14 Tage.

                          Achtung
                          Die Anzahl Bindings je View ist begrenzt!

                          ich weiß nicht mehr wie, ob auf Anzahl Zeichen, oder Anzahl Binings.
                          Bei 80 Widgets mit je 2 Bindings alleine in diesem View läppert sich das

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

                            @homoran
                            ja ist richtig, die begrenzung liegt bei 50, allerdings pro widget und nicht pro view
                            https://github.com/ioBroker/ioBroker.vis/blob/70b05af47dfd768ea0e6ca463310783f4c68fe5e/www/js/visUtils.js#L34

                            Homoran 1 Reply Last reply Reply Quote 0
                            • Homoran
                              Homoran Global Moderator Administrators @OliverIO last edited by

                              @oliverio sagte in Wenn Datenpunkt älter als 14 Tage, dann:

                              allerdings pro widget

                              if (oid.length > 50) {
                              console.warn('Too many bindings in one widget: ' + oid.length + '[max = 50]');

                              ist das die ganze Begrenzung?
                              50 (IDs???) pro Widget wird schon schwierig, oder worauf bezieht sich das?

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

                                @homoran
                                ja pro widget, also keine gefahr.
                                es könnte von der performance etwas schwierig werden, aber probier einfach mal

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

                                  @oliverio @Homoran danke danke danke
                                  Hab's jetzt folgender Maßen gelöst. Muss morgen Mal gucken ob die Umrechnung in Tage passt aber die 2 Minuten funktionieren sehr gut soweit.

                                  {lastchange:0_userdata.0.Papa.Platz1.lc;wert:0_userdata.0.Papa.Platz1;((new Date()-lastchange)/1000/60) > 2 ? "#d6061f" : wert == "" ? "#FFFFF" : "#00000"}

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  638
                                  Online

                                  31.7k
                                  Users

                                  79.7k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  15
                                  510
                                  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