Hallo,
folgenden dummy würde ich gerne aus FTUI ändern:
define dummy1 dummy
attr dummy1 alias Startzeit
attr dummy1 setList state:07:00,07:30,08:00,08:30,09:00,09:30,10:00,10:30,11:00
Da ich nur die angegebenen Zeiten auswählen können möchte, fällt der datetimepicker weg.
Ein select-Menü funktioniert aber leider nicht, da der Doppelpunkt in den Zeiten zu stören scheint.
data-items='["07:00","07:30","08:00","08:30","09:00","09:30","10:00","10:30","11:00"]'
Hat dafür schon jemand eine Lösung gefunden?
schöne Grüße
Jo
Funktioniert die Anzeige nicht oder der set Befehl? Falls es nur die Anzeige ist, könntest Du es mal mit "alias" probieren (die data-option heißt anders, weiß gerade aber nicht wie).
Sowohl in alias als auch in Deiner Definition kannst Du mal versuchen, den Doppelpunkt durch ":" zu ersetzen.
Tablet UI hat leider in einigen Widget Probleme mit Sonderzeichen wie Doppelpunkt, Semikolon usw.
Hallo,
Mit diesem Minimalbeispiel...
<div data-type="select" data-device="Test001" data-items='["06:00","07:00","08:00"]' data-alias='["06:00","07:00","08:00"]'></div>
define Test001 dummy
attr Test001 setList state:06:00,07:00,08:00
attr Test001 webCmd state
...wird die "06:00" angezeigt, aber sonst nichts. Ändern kann ich auch nichts. Scheint so, als wäre der Doppelpunkt das Problem :-\
schöne Grüße
Jo
Beim Datetimepicker kann man doch mit data-datepicker='false'
auf nur Zeit umschalten.
@Jojo11
ich habe ja so ein Demo einmal für den eBus (https://forum.fhem.de/index.php/topic,41064.msg336911.html#msg336911) (Eingabe für Calormatic 430) gemacht, da hatte ich ähnliche Probleme den String mit den Satztrennern zu übergeben und am eBus zu schreiben.
get ZeitfensterSchreibenDi cmd {"write -c 470mc mcTTTuesday ".ReadingsVal("TimeDi","HHMM1",0) . chr(59) . ReadingsVal("TimeDi","HHMM2",0) . chr(59) . ReadingsVal("TimeDi","HHMM3",0) . chr(59) . ReadingsVal("TimeDi","HHMM4",0) . chr(59) . "24:00" . chr(59) . "24:00" . chr(59) . "selected\n"}
Das habe ich dann einfach mit chr() beim Zusammensetzen des String gelöst. Die Eingabe habe ich auch mit setlist durchgeführt, weil man die auch schön mehre Eingaben aneinanderreihen kann. Das Ganze läuft dann auch auf mit Tabletui ohne weitere Probleme[/code]
<header><font size="+1">Zeitprogramme Timer 1</font></header>
<div class="cell right" >
<div data-type="label" class="inline thin blue" >Montag:</div>
<div data-type="datetimepicker" data-device="TimeMo"
data-get="HHMM1"
data-cmd="setreading"
data-set="HHMM1"
data-step="5"
data-timepicker="true"
data-datepicker="false" data-format="H:i"
class="inline large thin organge"></div>
<div data-type="label" class="inline thin blue" >---</div>
<div data-type="datetimepicker" data-device="TimeMo"
data-get="HHMM2"
data-cmd="setreading"
data-set="HHMM2"
data-step="5"
data-timepicker="true"
data-datepicker="false" data-format="H:i"
class="inline large thin organge"></div>
</div>
LG
Reinhart
Zitat von: Jojo11 am 24 März 2016, 10:06:32
Hallo,
Mit diesem Minimalbeispiel...
<div data-type="select" data-device="Test001" data-items='["06:00","07:00","08:00"]' data-alias='["06:00","07:00","08:00"]'></div>
define Test001 dummy
attr Test001 setList state:06:00,07:00,08:00
attr Test001 webCmd state
...wird die "06:00" angezeigt, aber sonst nichts. Ändern kann ich auch nichts. Scheint so, als wäre der Doppelpunkt das Problem :-\
schöne Grüße
Jo
Die setList kann man mit data-list="setList" auslesen und die Items in das Select füllen.
Hallo,
vielen Dank für die Vorschläge :o
Den datetimepicker hatte ich schon nur auf Zeit umgestellt. Aber den möchte ich vermeiden, da ich nur wenige Zeiten auswählen können möchte und ich nicht kilometerweit scrollen will, nur weil ich die Abstände auf 5 oder 10 Minuten gesetzt habe ;)
Wenn man dem eine minimale und maximale Uhrzeit vorgeben könnte, würde ich mir die Mühe machen, das Layout anzupassen (was so gar nicht zu meinem passt).
Das select-Widget habe ich jetzt mal mit
data-list="setList"
getestet, was aber auch kein besseres Ergebnis bringt :-\
schöne Grüße
Jo
Hallo setstate,
könntest Du beim datetimepicker evtl. noch die Parameter
allowTimes
minTime
maxTime
minDate
maxDate
aktivieren?
Das würde die Problematik elegant lösen ;)
Habe mich selber an der .js-Datei versucht, aber mit mäßigem Erfolg ;D
schöne Grüße
Jo
Hallo zusammen,
zunaechst mal sorry, dass ich hier in dem Thread Staub wische, ich wusste nur nicht, wo ich das sonst aufhaengen sollte und da es um genau dieses Thema ging....
Nachdem ich bei der Erstellung meiner FTUI Oberfläche für das Handy auf das gleiche Problem gestoßen bin und mir die Auswahl über das datetimepicker widget aus den gleichen Gründen wie bei jo nicht zusagt, habe ich mir widget_select.js angesehen und festgestellt, daß eine kleinere Änderung dort das Problem lösen könnte (für mich hat es funktioniert, bedarf aber einer Überprüfung!).
Da ich keinen Zugang zu github habe und nicht genau weiß, wie das mit den pull requests hier gehandhabt wird, hier meine kleine Änderung. Dabei werden die folgenden Zeilen 115-119 in der widget_select.js
var tokens = value.split(':');
if (tokens && tokens.length > 1) {
if (tokens[0] == setreading)
founditems = tokens[1].split(',');
}
durch folgende Zeilen ersetzt:
var selectItems = value.split(','); // split at ',' to get all elements of list
var tokens = selectItems.shift().split(':'); // get first element of list and split it at ':' as it contains the reading name as well separated by colon
var readingName = tokens.shift(); // first element of token list is reading name for which the setList is valid
selectItems.unshift(tokens.join(':')); // re-add the first element to original list
if (selectItems && selectItems.length > 0) {
if (readingName == setreading) {
founditems = selectItems;
}
}
Erklärung: Die Reihenfolge der Splits wird umgekehrt, sodass zunaechst auf ',' gesplittet wird und der Name des Readings durch einen Split mit ':' auf das erste Element ermittelt wird. Dann wird der Rest dieses ersten Listenelements wieder zusammen- und dann wieder in die originale Liste eingefuegt.
@setstate, koenntest Du Dir das ev. mal ansehen und ueberlegen, ob Du das so uebernehmen kannst und willst?
Danke + Gruss
/elle