Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Solltemperatur +/- Button

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Solltemperatur +/- Button

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

      Hallo,

      ich hoffe ich kann mein Problem einigermaßen verständlich erklären:

      Ich habe in meinem VIS-View ein Widget welches mir die Soll- und Ist-Temperatur eines Heizkörperthermostates anzeigt. Hinzu kommen ein Plus- und ein Minus-Button um die Solltemperatur schrittweise ändern zu können. Mein Problem ist nun folgendes:

      Ich habe ein Widget vom Typ basic-Number, welches mir die Soll-Temperatur anzeigt (SET_TEMPERATURE). Die Buttons für Plus und Minus sind vom Typ jqui-ctrl-IconIncrement. Drücke ich nun den + Button wird die Solltemp. auch um 0.5 erhöht. Funktioniert also soweit.

      Problematisch wird es, wenn ich öfter auf den Button klicke um die Temp. z.B. um 3°C zu erhöhen. Die Anzeige der Solltemperatur spielt dann verrückt. Ich denke es liegt daran, dass sich die Werte dieses Datenpunktes (?) dann "überschneiden". Zum Einen erhöhe ich den Wert wieder und wieder und zum Anderen bekommt ioBroker immer wieder die aktuellen Daten aus der CCU.

      Drücke ich z.B. 6mal auf Plus, steigt der Wert in der Anzeige z.B. erstmal von 20 auf 22, springt dann zurück auf 21 -> ich drücke weiter geht wieder hoch -> springt wieder ein Stück zurück.

      Ich hoffe ihr versteht was ich meine. Ansonsten muss ich mal versuchen ein Video zu machen.

      Mir fällt allerdings auch nicht wirklich was ein, wie ich das besser lösen könnte.

      Viele Grüße

      2530_vis1.jpg
      2530_vis2.jpg

      1 Reply Last reply Reply Quote 0
      • R
        RappiRN Most Active last edited by

        Hast du mal versucht das repeat_delay (300) zu erhöhen?

        Ich persönlich finde 0,5°C Schritte unnötig, 1°C Schritte reichen, musst du aber selbst wissen! 😄

        Enrico

        1 Reply Last reply Reply Quote 0
        • N
          nevermind last edited by

          Das löst ja aber mein Problem nicht, oder? Natürlich könnte ich auch einfach langsamer klicken aber das ist ja nicht wirklich eine Lösung.

          1 Reply Last reply Reply Quote 0
          • P
            Pman last edited by

            Das Problem hier ist, dass jeder Klick SOFORT an den Aktor geschickt wird und während noch die Funkkommunikation andauert drückst du schon weitere male. Irgendwann sind Aktor und Vis dann nicht mehr synchron. Die CCU meldet irgendwann den Wert, welcher im Aktor aktuell ist, zurück an ioBroker und der Wert springt zurück.

            Bei allem, wo es schnelle Änderungen gibt, ist es sinnvoll eine Art Puffer-State einzubauen, du kannst dazu solche ein Skript nutzen (nicht getestet!):

            /* diese Drei Werte anpassen! */
            var stateId = "hm-rpc.0.xxxxxx.2.SET_TEMPERATURE";
            var bufferState = "set_temperature_puffer";
            var delay = 1000; //ms
            
            var obj = getObject('stateId');
            createState('puffer.' + bufferState, obj.common.def || undefined,  false, obj.common, obj.native);
            
            on({id: 'puffer.' + bufferState, ack: false}, function(obj) {
                setStateDelayed (stateId, obj.state.val, false, delay, true);
            });
            on({id: stateId, ack: true}, function(obj) {
                setState('puffer.' + bufferState, obj.state.val, true);
            });
            
            
            1 Reply Last reply Reply Quote 0
            • Uhula
              Uhula last edited by

              Repeating-Problem durch die Übertragungslatenz kann man auch umgehen, in dem man

              • lediglich diskrete Buttons zum Setzen verwendet [17°][18°]…[23°]

              • oder den Wert aus einem jqui-Select Value List abrufen lässt (Listinhalt 17°, 17,5°, 18°, …)

              • oder den Wert über ein jqui-Radiobuttons Valuelist setzen lässt

              Dann muss man auch nicht 6x tappen, sondern max 2x 😉

              Ist keine echte Lösung für dein Problem, sondern sind lediglich Alternativen.

              1 Reply Last reply Reply Quote 0
              • N
                nevermind last edited by

                Danke erstmal für eure Antworten.

                Das mit dem Puffer hab ich mir auch schon überlegt. Danke für den Codeschnipsel. Ich werde noch versuchen das in eine Schleife zu packen, sodass ich es nicht für alle Thermostate einzeln machen muss.

                1 Reply Last reply Reply Quote 0
                • P
                  PauleB last edited by

                  Gibt es dafür nicht eine bessere, saubere Lösung? Ich habe das gleiche Problem, aber mit einem Slider für die Beleuchtung.

                  1 Reply Last reply Reply Quote 0
                  • P
                    Pman last edited by

                    Selbes Skript funktioniert auch da. Im moment gibt es dafür leider keine Universellere Lösung.

                    1 Reply Last reply Reply Quote 0
                    • N
                      nevermind last edited by

                      Ich habe das jetzt erstmal mit dem Script gelöst. Funktioniert zumindest besser als zuvor.

                      Was mich dennoch etwas stört: Die Bedienung (VIS) ist noch nicht richtig geschmeidig. Man kann nicht schön schnell hintereinander tippen, sondern hat immer noch eine gewisse Latenz. Ich denke die sauberste Lösung wäre, wenn dieser "Puffer" direkt im VIS-Widget integriert wäre. Soll heißen, man betätigt mehrfach den Button in VIS und erst nach einer gewissen Verzögerung wird die Änderung an ioBroker übertragen. Das hatte ich schon mal versucht, jedoch bin ich damals an einem anderen Problem gescheitert:

                      http://forum.iobroker.net/viewtopic.php?f=30&t=6220

                      Hatte dann erstmal aufgegeben…

                      vg

                      Jens

                      X 1 Reply Last reply Reply Quote 0
                      • X
                        xfirf @nevermind last edited by xfirf

                        @nevermind Hi,
                        ich würde diesen Thread mal ausgraben da ich diese Buttons auch benutzen möchte. Allerdings bekomme ich es nicht hin den Wert zu senken. Ich hab mal ganz naiv -1 statt 1 eingetragen, aber das funktioniert nicht.

                        Wie hast du das denn in der Variante ohne Script gemacht?

                        Danke im Voraus.

                        Homoran paul53 2 Replies Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @xfirf last edited by

                          @xfirf sagte in Solltemperatur +/- Button:

                          ich würde diesen Thread mal ausgraben

                          bist du dir sicher, dass die bisherigen Poster nach 3 Jahren überhaupt noch existieren?

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

                            @Homoran Das werde ich jetzt herausfinden. Falls nein kann ich ja einfach einen neuen Thread aufmachen und schauen ob mir jmd anderes helfen kann.

                            N 1 Reply Last reply Reply Quote 0
                            • N
                              nevermind @xfirf last edited by nevermind

                              @Homoran

                              Versuchen kann man es ja mal 😉

                              @xfirf

                              Ich habe gerade versucht raus zu finden wie ich das gelöst habe ... ist schon eine Weile her. So ganz durchschaut habe ich es nicht. Im Prinzip nutze ich aber das Script, also Buffer-States. In vis habe ich ein Javascript welches beim klicken auf +/- den Wert in einem unsichtbaren Input-Feld ändert.

                              Wie gesagt ... so ganz genau kann ich es dir gerade nicht erklären. Müsste mich da erst mal wieder rein denken.

                              X 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @xfirf last edited by paul53

                                @xfirf sagte:

                                Ich hab mal ganz naiv -1 statt 1 eingetragen, aber das funktioniert nicht.

                                So funktioniert es bei mir problemlos:

                                Vis_Minus_button.JPG

                                JS_Temp.JPG

                                X 1 Reply Last reply Reply Quote 1
                                • X
                                  xfirf @nevermind last edited by

                                  @nevermind Achso.
                                  Mein Plan wäre ja gewesen es über das vorhandene Widget zu machen, ohne Javascript. Wenn man im Feld eine "1" einträgt wird der Wert der Heizung auch um ein Grad erhöht. Aber ich bekomms damit nicht hin dass die Temperatur auch gesenkt werden kann.
                                  "-1" ist da mein Ansatz, aber das klappt nicht.

                                  1 Reply Last reply Reply Quote 0
                                  • X
                                    xfirf @paul53 last edited by

                                    @paul53 Minmax muss auf 0 (gerade per google gefunden) oder wie bei dir auf -100 stehen, dann gehts.

                                    DANKE. 🙂

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @xfirf last edited by

                                      @xfirf sagte:

                                      Minmax muss auf 0 (gerade per google gefunden) oder wie bei dir auf -100 stehen

                                      Genauer: Minmax muss beim - Button das Minimum und beim + Button das Maximum enthalten, da dort gestoppt wird.

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      495
                                      Online

                                      32.0k
                                      Users

                                      80.4k
                                      Topics

                                      1.3m
                                      Posts

                                      8
                                      17
                                      4511
                                      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