Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. (gelöst) Jarvis ButtonGroupAction als Temperaturregler

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    (gelöst) Jarvis ButtonGroupAction als Temperaturregler

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

      Hallo,
      ich nutze in Jarvis die ButtonGroupAction, um die Zieltemperatur eines Thermostatventils einzustellen.
      Das sieht dann für die Zieltemperatur so aus:

      Zieltemperatur Küche.png

      Dieses sind die Einstellungen für die Komponenten des Buttons:

      Komponenten-ButtonGroupAction.png

      und die Datenpunkteigenschaften des Buttons:

      Datenpunkteigenschaften.png

      Der Anzeigewert ist die Zieltemperatur des Themostats und der Triggerwert ein State mit einer boolschen Variable. darauf regiere ich mit folgendem Blockly:

      Blockly.png

      Man beachte, dass, wenn ich den Zielwert um 0,5 °C erhöhen möchte, die Änderung im Blockly auf + 0,25 oder - 0,25 setzen muss, da der ButtonGroupAction wohl nur als Taster genutzt werden kann und den Wert true oder false immer doppelt setzt.

      Meine Frage: kann man das irgendwie eleganter lösen, da diese Lösung manchmal zu unschönen Anzeigen beim Zielwert führt(Zielwerttemperatur blinkert kurz zwischen alten und neuen Zielwert hin und her) bzw. ich den Eindruck habe, dass sie manchmal gar nicht funktioniert(neuer Zielwert wird nicht gesetzt).

      Ich hoffe, ich habe alle nötigen Informationen einigermaßen verständlich aufgeführt und freue mich auf Anregungen oder Verbesserungsvorschläge.
      viele Grüße
      Kymchy

      MartinP 1 Reply Last reply Reply Quote 0
      • MartinP
        MartinP @Kymchy last edited by MartinP

        @kymchy Jarvis setze ich nicht ein. Bei Vis habe ich da einen Slider genutzt, der direkt die Soll-Temperatur in den entsprechenden Datenpunkt schreibt. min/max/step parametrieren den Slider...

        98bb2e49-a328-425e-a15d-617f5fcd86af-grafik.png
        d3004dea-507b-4ea7-ba8b-25f385963e75-grafik.png

        Ein "Regler" ist da übrigens nicht, was Du uns da vorgestellt hast, sondern nur die Behandlung der Soll-Temperatur für den Regler. Auch habe ich die Stelle nicht gefunden, wo die "Ist" Temperatur in das Control eingespeist wird.

        Die Doppel - Trigger kriegst Du daher, dass das Skript sowohl beim Betätigen, als auch beim Loslassen der Taste feuert. Das kann man vermeiden indem man "ist größer als ..." statt "wurde geändert" verwendet. Da fällt dann das Loslassen heraus, weil der Wert dann kleiner wird ...

        K 1 Reply Last reply Reply Quote 0
        • K
          Kymchy @MartinP last edited by Kymchy

          @martinp Danke für deine Tipps!
          Der Taster (ButtonGroupAction) feuert entweder zweimal hintereinander true oder zweimal hintereinander false, je nachdem, welchen Pfeil man anklickt. Ein "wurde geändert" oder "ist größer als" funktioniert daher nicht. In meinem Blokly benutze ich daher "wurde aktualisiert".
          Würde ich mit 2 Button arbeiten, wäre es kein Problem, aber man kann in Jarvis, zumindest nicht ohne CSS, 2 Button nebeneinander machen. Bei einer einfachen ButtonAction kann man einstellen, ob er als Schalter oder als Taster fungieren soll und dann über die Datenpunkt Eigenschaften einstellen, dass er immer nur einmal true oder immer nur einmal false feuert.

          MartinP 1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP @Kymchy last edited by

            @kymchy said in Jarvis ButtonGroupAction als Temperaturregler:

            @martinp Danke für deine Tipps!
            Der Taster (ButtonGroupAction) feuert entweder zweimal hintereinander true oder zweimal hintereinander false,

            Das riecht ja fast nach einem Bug im Control ... Könnte man natürlich im Blockly Skript durch eine "Entprellung" abfangen, aber das wäre nach meinem Bauchgefühl herumdoktoren an Symptomen ...
            Der zweite Trigger wird ja immer mit einem Abstand von nur wenigen Millisekunden zum ersten eintrudeln - das könnte man durch eine Zeitmessung herausfiltern ...

            K 1 Reply Last reply Reply Quote 0
            • K
              Kymchy @MartinP last edited by Kymchy

              @martinp
              trigger.png

              Hier kommt er sehr kurz nach dem anderen, praktisch zeitgleich.

              Im nächsten Screenshot sogar zeitgleich. Da wird man es vermutlich schwer durch Zeitmessung filtern können:

              trigger2.png

              MartinP 1 Reply Last reply Reply Quote 0
              • MartinP
                MartinP @Kymchy last edited by MartinP

                @kymchy Hier meine Idee

                ce728bd8-77c4-436c-8467-aac8e40ac8c4-grafik.png

                • Zeitobjekte sind die Millisekunden seit dem 1.1.1970
                • ActualTime und LastTime müssen unter "Variablen" definiert werden, und dann von dort gepickt
                K 1 Reply Last reply Reply Quote 0
                • K
                  Kymchy @MartinP last edited by

                  @martinp Zeitobjekte sind mir schon bekannt, ich verstehe nur noch nicht genau, wie du es damit schaffst, bei jedem Klick auf einen Pfeil ein "true" bzw ein "false" herauszufiltern.

                  MartinP 1 Reply Last reply Reply Quote 0
                  • MartinP
                    MartinP @Kymchy last edited by MartinP

                    @kymchy Wenn das Nachfolge-Signal weniger als 50 ms nach dem Vorgänger-Signal kommt, wird es im "Mache" Zweig behandelt, der "Sonst" Zweig ist für das erste Signal ...

                    Womöglich muss man da aber genauer ins logging schauen ...

                    ggfs wird das zweite gleichlautende Signal erst beim Loslassen der Taste ausgelöst, und das Zeitintervall ist damit auch vom Bediener abhängig - wenn der die Taste lange aktiviert hält ....

                    Wenn z.B. Raus/False immer spätestens 50 ms nach Rein/False kommt, könnte man Rein/False auswerten, und Raus/False mit obigem Skript verwerfen ...

                    Wenn aber Raus/False erst ausgelöst wird, wenn der Benutzer die Taste wieder "losgelassen" hat, ist die Filterung so nicht möglich...

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Kymchy @MartinP last edited by Kymchy

                      @martinp ok, danke, jetzt hab ichs kapiert. Mit dem iPad ausgelöst, also per Touch, funktioniert dein Script schonmal...

                      update: auch am PC ausgelöst, wenn ich die Maustaste festhalte.
                      Es scheint so zu sein, dass 50 ms ausreichen und ein Halten der Taste nicht relevant ist.

                      K 1 Reply Last reply Reply Quote 0
                      • K
                        Kymchy @Kymchy last edited by Kymchy

                        @MartinP das soll mal einer schnallen:
                        jetzt habe ich folgendes Scipt:
                        3f41299d-660a-401d-a1c8-ec8370f7641d-image.png

                        welches meistens funktioniert aber manchmal nicht 0,5 addiert oder abzieht, sondern 0,25...???

                        MartinP 1 Reply Last reply Reply Quote 0
                        • MartinP
                          MartinP @Kymchy last edited by MartinP

                          @kymchy Ist da vielleicht in einem anderen Dashboard noch eine alte Version des Scripts aktiv?

                          Man könnte ggfs. die Zeitdifferenz-Abfrage oben auf eine Abfrage ">= 50" umkehren, und den Inhalt des "Sonst"-Zweigs mit dem "Mache"-Zweig vertauschen. Nach den Tests kann man dann den "Sonst" Zwei komplett entsorgen - macht die Sache übersichtlicher, wenn man irgendwann wieder draufgucken muss ...

                          K 2 Replies Last reply Reply Quote 0
                          • K
                            Kymchy @MartinP last edited by

                            @martinp ich glaube, es sind 0,75, aber es könnten meiner Meinung nur 0,5 oder 1 sein.

                            MartinP 1 Reply Last reply Reply Quote 0
                            • MartinP
                              MartinP @Kymchy last edited by

                              @kymchy Stand "example - State" denn auf einem Vielfachen von 0,5 beim Start des Skriptes, oder hatte einen "unrunden" Wert aus den vorigen Versuchen? Wäre eine ziemlich banale Erklärung ...

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                Kymchy @MartinP last edited by

                                @martinp said in Jarvis ButtonGroupAction als Temperaturregler:

                                Man könnte ggfs. die Zeitdifferenz-Abfrage oben auf eine Abfrage ">= 50" umkehren, und den Inhalt des "Sonst"-Zweigs mit dem "Mache"-Zweig vertauschen. Nach den Tests kann man dann den "Sonst" Zwei komplett entsorgen - macht die Sache übersichtlicher, wenn man irgendwann wieder draufgucken muss ...

                                ja, das hatte ich auch schon überlegt.
                                Es gibt bei den Komponenten Einstellungen die Option "Taster Impulsdauer". Die steht momentan auf 0. Vielleicht sollte ich die mal hochsetzen. Aber den Wert 0.75 verstehe ich trotzdem überhaupt nicht.

                                1 Reply Last reply Reply Quote 0
                                • K
                                  Kymchy @MartinP last edited by Kymchy

                                  @martinp es geht ja irgendwann, wenn wieder mal 0,75 addiert/subtrahiert werden wieder auf ein Vielfaches von 0,5, ab dann müsste es funktionieren...

                                  mir ist aufgefallen, dass das mit den 0,75 nur passiert, wenn ich von down auf up wechsele anders herum ist alles gut.
                                  Immer nur auf Up geklickt, addiert es brav immer 0,5, anders herum geht es auch...das soll mal einer begreifen...

                                  Also klicke ich ein paar mal auf Up, werden immer 0,5 hinzugezählt. Klicke ich dann auf down, werden 0,5 abgezogen. Gehe ich dann wieder auf up, werden 0,75 addiert...😞

                                  MartinP 1 Reply Last reply Reply Quote 0
                                  • MartinP
                                    MartinP @Kymchy last edited by

                                    @kymchy Falls Du noch über dem Problem brütest: Ich habe ja immer noch die Vermutung, dass eine alte Version des Scripts irgendwo herumgeistert, getriggert wird und dann zusätzliche 0,25 dazu mogelt....

                                    Eventuell mal ganz zu Anfang des "sonst"-Zweiges den Wert von example_state vor dem Addieren/Subtrahieren von 0,5 loggen lassen

                                    Wenn der Wert beim letzten Verlassen des Skriptes ein Vielfaches von 0,5 war, und beim Betreten dann nicht, wurde er folglich anderweitig verändert ...

                                    K 1 Reply Last reply Reply Quote 0
                                    • K
                                      Kymchy @MartinP last edited by Kymchy

                                      @martinp Ja, du hattest Recht. Es war die Version, die ich mit deinem ersten Vorschlag(ist größer als) ausgestattet hatte. Dann triggerte die nat. jedes Mal, wenn ich von down auf up gewechselt habe. Manchmal sieht man den Wald vor lauter Bäumen nicht...Vielen Dank nochmal für deine wirklich sehr gute Hilfe!! Jetzt läuft alles prima.

                                      Verstehen tue ich allerdings immer noch nicht, warum der Button jeweils zweimal true oder false feuert. Ich sehe keinen Sinn darin.

                                      Der Vollständigkeit halber jetzt nochmal das fertige Script, so wie es jetzt bei den Thermostaten läuft:

                                      55594183-702f-4bcd-ac06-ac03c623ea60-image.png

                                      MartinP 1 Reply Last reply Reply Quote 0
                                      • MartinP
                                        MartinP @Kymchy last edited by

                                        @kymchy said in (gelöst) Jarvis ButtonGroupAction als Temperaturregler:

                                        Verstehen tue ich allerdings immer noch nicht, warum der Button jeweils zweimal true oder false feuert. Ich sehe keinen Sinn darin.

                                        Wenn das ein reproduzierbares Verhalten ist, halte ich das für einen Bug ...

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        964
                                        Online

                                        32.1k
                                        Users

                                        80.8k
                                        Topics

                                        1.3m
                                        Posts

                                        2
                                        18
                                        993
                                        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