Hi!
Die Kombination von checkbox und on-for-timer führt bei mir zu folgender Fehlermeldung:
Uncaught TypeError: faelem.setProgressValue is not a function
at startTimer (widget_famultibutton.js:66)
at checkForTimer (widget_famultibutton.js:98)
at String.<anonymous> (widget_famultibutton.js:586)
at Function.each (jquery.min.js:2)
at HTMLDivElement.<anonymous> (widget_famultibutton.js:571)
at Function.each (jquery.min.js:2)
at w.fn.init.each (jquery.min.js:2)
at Object.update (widget_famultibutton.js:567)
at Object.<anonymous> (fhem-tablet-ui.js:440)
at Function.each (jquery.min.js:2)
Das Problem tritt dann auf, wenn man mittels eines checkbox-Widgets einen on-for-timer-Befehl sendet. (siehe auch https://forum.fhem.de/index.php/topic,88001.0.html). Das Problem sollte sich unproblematisch mit einem entsprechenden Check oder notfalls mit einer leeren setProgressValue-Funktion beheben lassen.
Grüße
Patrick
Guten Abend!
Habe nun temporär die on-for-timer-Erkennung vollständig deaktiviert.
widget_famultibutton.js, ab Zeile 46:
/*if (seton && !$.isNumeric(seton) && !$.isArray(seton) && ftui.getPart(seton, 1) === "on-for-timer") {
secondes = ftui.getPart(elem.data("set-on"), 2);
} else*/ if (elem.isDeviceReading('countdown')) {
secondes = elem.data("secondes");
} else {
secondes = elem.data("countdown");
}
return secondes;
Patrick
Die Fehlermeldung ist ohne Zweifel gerechtfertigt. Das Object hat in diesem Augenblick diese Funktion nicht.
Bei mir sind komischerweise beide Browser (Safari, Firefox) sehr tolerant und meckern keine Fehler an.
Zur Lösung würde ich aber lieber eine Dummy-Funktion in widget_checkbox.js in Zeile 137 einbauen.
input.setProgressValue = function () {};
Ist damit bei dir die Fehlermeldung auch weg?
Zitat von: setstate am 21 November 2018, 21:13:59
Bei mir sind komischerweise beide Browser (Safari, Firefox) sehr tolerant und meckern keine Fehler an.
Safari unter iOS meckert.
Zitat von: setstate am 21 November 2018, 21:13:59
Zur Lösung würde ich aber lieber eine Dummy-Funktion in widget_checkbox.js in Zeile 137 einbauen.
input.setProgressValue = function () {};
Ist damit bei dir die Fehlermeldung auch weg?
Sieht gut aus! Danke!
Patrick