Nicht jede erlaubte Zahleneingabe in Widget knob möglich

Begonnen von Dr. Boris Neubert, 13 März 2026, 08:10:54

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Hallo,

ich habe am Thermostat-Device folgendes Attribut:

widgetOverride desired-temp@set:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225
Die Temperatureinstellung geht von 5 bis 30 °C.

Da die Drehung des Knopfes mit der Maus fummelig ist, will ich die Zahleneingabe in das Eingabefeld mitten im Knopf benutzen. Allerdings greift bei der Eingabe von Ziffern die Prüfung auf den erlaubten Wertebereich so schnell, dass es nicht möglich ist, den Wert 20 einzugeben.

Ich tippe 2, das ist nicht erlaubt, der Wert im Feld wird zurückgesetzt, bevor ich 21 eingegeben habe.

Kennt jemand dieses Problem und weiß, wie man es behebt?

Grüße
Boris
FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!

Beta-User

Hmmm, ich glaube mich zu entsinnen, dass diese Hakeligkeit damals der Grund dafür war, warum das Widget "nur" per widgetOverride in den Thermostat-attrTemplates vercodet ist...
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Dr. Boris Neubert

Danke für die Rückmeldung!

Das Widget ist ja an sich schön, und ich wollte es gerne nutzen und daher habe ich nachgefragt, bevor ich auf slider umstelle.

Bevor ich jetzt anfange, im FHEMWEB zu graben, vielleicht weißt du das aus dem Kopf: Ist das Widget aus jquery importiert oder wird der Code dazu von den FHEM-Entwicklern in unserem Repo gepflegt?

Grüße
Boris

FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!

Beta-User

Soweit ich mich entsinne, kommt das js mit fhem, man könnte es also anpassen...
Server: HP-elitedesk@Debian 13, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Dr. Boris Neubert

Es handelt sich um
www/pgm2/jquery.knob.min.jsIch habe die Datei durch einen Beautifier geschickt.
Das Problem mit diesem Kode ist, dass nach jedem KeyUp der eingegebene Wert gegen min und max validiert wird. Das funktioniert wohl, wenn min 0 ist, aber nicht, wenn er, wie bei Thermostaten, 5 ist.
Es ist nicht damit getan, die Stelle zu ändern.

            }).bind("keyup", function(e) {
                if (isNaN(u)) {
                    if (a) {
                        window.clearTimeout(a);
                        a = null;
                        f = 1;
                        t.val(t.$.val())
                    }
                } else {
                    t.$.val() > t.o.max && t.$.val(t.o.max) || t.$.val() < t.o.min && t.$.val(t.o.min)
                }
            });
 
Das Widget dürfte erst validieren, wenn das Texteingabefeld den Fokus verliert oder man Enter drückt. Das überschreitet meine Javascript-Fähigkeiten.
FHEM-Developer seit 2007, Mitgründer und Förder-Mitglied des FHEM e.V.
Bitte keine unaufgeforderten privaten Nachrichten!