Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Trigger mit Strings

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Trigger mit Strings

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      fir3drag0n @Dr. Bakterius last edited by

      @dr-bakterius Screenshot_20220831-173923.png

      Leider wird jetzt genau das gemeldet und immer nur 10%

      F 1 Reply Last reply Reply Quote 0
      • F
        fir3drag0n @fir3drag0n last edited by fir3drag0n

        also so in etwa?

        69bac35b-e93d-4e91-b387-3ea5e3ffd23d-image.png
        ....
        34f970f4-a129-4efb-ac2f-f04896a30639-image.png

        Wie verhindere ich, dass es bei den 10% stehen bleibt?

        F Dr. Bakterius 2 Replies Last reply Reply Quote 0
        • F
          fir3drag0n @fir3drag0n last edited by

          ich versuche es nun mal mit Intervallen:

          b154ca11-1da3-425c-ac40-64899b1a6f81-image.png

          Asgothian 1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @fir3drag0n last edited by Asgothian

            @fir3drag0n warum so kompliziert ? Warum nicht einfach :

            Screenshot 2022-09-01 at 08.05.55.png

            Und wenn du nur ganze Vielfache von 10 haben willst:

            Screenshot 2022-09-01 at 08.14.05.png

            Nachtrag:

            Mit dieser Anpassung bekommst du beim Anstöpseln eine Meldung wie weit der ID3 aktuell geladen ist.
            Wenn du alle 10 % über den Ladezustand informiert werden willst würde ich den Folgenden Ansatz nutzen:
            Screenshot 2022-09-01 at 09.43.20.png

            F 1 Reply Last reply Reply Quote 1
            • Dr. Bakterius
              Dr. Bakterius Most Active @fir3drag0n last edited by

              @fir3drag0n sagte in Trigger mit Strings:

              Wie verhindere ich, dass es bei den 10% stehen bleibt?

              Indem du für jeden 10%-Schritt eine eigene Variable nimmst und darauf prüfst. Oder du schreibst in die Variable den gemeldeten Wert rein und prüfst darauf. Also wenn 10% erreicht, dann schreibst du '10' in die Variable. Und du prüft bei 10% ob die Variable kleiner 10 ist, bei 20% ob sie kleiner 20 ist, usw...

              1 Reply Last reply Reply Quote 0
              • F
                fir3drag0n @Asgothian last edited by

                @asgothian das funktioniert jetzt, perfekt!

                kann ich noch die Bedingung einbauen, dass er mir immer einen neuen Wert übermittelt (bei > 10 SOC), wenn der Wert mindestens um 5 höher liegt?

                Asgothian 1 Reply Last reply Reply Quote 0
                • Asgothian
                  Asgothian Developer @fir3drag0n last edited by Asgothian

                  @fir3drag0n Klar.. du musst nur die Berechnung des "Limits" und des Textes anpassen. Wenn du dir die Formel hinter Screenshot 2022-09-09 at 15.08.10.png und Screenshot 2022-09-09 at 15.08.18.png

                  anschaust dann liefern die immer Zahlen im 10-er Raster. Wenn Du ein 5er Raster haben willst sollte es reichen die beiden Zahlen in den Formeln durch 5 zu ersetzen.

                  A.

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fir3drag0n @Asgothian last edited by fir3drag0n

                    @asgothian aber /10 * 10 ist doch einfach immer nur der Wert?

                    Zumindest erhalte ich da immer Werte, die nur durch das Update Interval des Adapters bestimmt werden und wie oft da neue Werte übertragen werden.

                    Asgothian 1 Reply Last reply Reply Quote 0
                    • Asgothian
                      Asgothian Developer @fir3drag0n last edited by Asgothian

                      @fir3drag0n

                      x/10 * 10 wird auch nie berechnet.

                      Da steht im einen Fall roundup(x/10) * 10, im anderen rounddown(x/10) * 10

                      Das Updateintervall des Adapters bestimmt die maximale Frequenz mit der du Meldungen bekommen kannst. Wenn du eine Meldung bekommen hast führt das hochstehen der Meldeschwelle dazu das der nächste wert erst gemeldet wird wenn die neue Meldeschwelle überschritten wurde.

                      A.

                      F 1 Reply Last reply Reply Quote 1
                      • F
                        fir3drag0n @Asgothian last edited by fir3drag0n

                        @asgothian ok, verstanden, aber wieso wird die Abfolge dann nicht berechnet, z.B. bei einem SOC von 60 (%), dann rechnet er also nicht (60/10)*10, sondern macht mit "Limit" was?

                        Und warum erst dividieren und dann wieder mit dem selben Wert multiplizieren?

                        Asgothian 1 Reply Last reply Reply Quote 0
                        • Asgothian
                          Asgothian Developer @fir3drag0n last edited by Asgothian

                          @fir3drag0n

                          die Funktion roundDown rundet den erhaltenen Wert auf die ganze Zahl näher 0
                          die Funktion roundUp macht es in die andere Richtung (ganze zahl von 0 weg)

                          bei 60 lohnt das nicht, aber.. wenn es eine Aktualisierung mit 56 gibt, dann liefert
                          roundup(56/10) * 10 die Zahl 60, während rounddown(65/10)*10 die Zahl 50 liefert

                          das ganze funktioniert letztendlich so das erst dann eine Nachricht geschickt wird wenn der aktuell vom Adapter gemeldete Wert das Limit übersteigt.
                          Ein wert von 60 erzeugt also noch keine Meldung, die Meldung kommt erst wenn 61 gemeldet wird. (oder 60.00000001)
                          Dann wird durch rounddown(61/10)*10 die Meldung "zu 60% geladen" ausgegeben, und durch roundup(61/10)*10 wird das Limit auf 70 angehoben. Die nächste Meldung kommt also erst wenn 70% überschritten wird

                          A.

                          F 1 Reply Last reply Reply Quote 0
                          • F
                            fir3drag0n @Asgothian last edited by fir3drag0n

                            @asgothian dann funktioniert es in dem Fall aber nicht, weil bei mir auch Werte dazwischen gemeldet wurden

                            Screenshot_20220909-170726.png

                            Asgothian 1 Reply Last reply Reply Quote 0
                            • Asgothian
                              Asgothian Developer @fir3drag0n last edited by

                              @fir3drag0n zeig mal genau das was du zusammen gebaut hast

                              F 1 Reply Last reply Reply Quote 0
                              • F
                                fir3drag0n @Asgothian last edited by

                                @asgothian

                                93789a12-f656-490f-9342-1c053ba28cec-image.png
                                605b669a-f65f-498c-8600-50dc98fde50d-image.png

                                Asgothian 1 Reply Last reply Reply Quote 0
                                • Asgothian
                                  Asgothian Developer @fir3drag0n last edited by Asgothian

                                  @fir3drag0n

                                  du hast den Runden Baustein an der falschen Stelle eingehängt.

                                  Anstatt "runde ab (wert / 10) * 10" machst du
                                  "runde ab (wert / 10 * 10)

                                  das gleiche beim aufrunden

                                  Vergleich mal:
                                  Deins:

                                  Screen Shot 2022-09-09 at 17.10.50 .png

                                  Meins:

                                  Screen Shot 2022-09-09 at 17.13.30 .png

                                  So wie du es gemacht hast liefert es alle 1 % eine Nachricht

                                  A.
                                  Nachtrag: der gleiche Fehler natürlich auf bei der Berechnung des Limit

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  614
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  25
                                  1017
                                  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