Datum eingeben?

Erstaunlich eigentlich dass ich unter diesen beiden Suchbegriffen nichts gefunden habe. Also, ich suche eine ästhetisch und funktional ansprechende Lösung, um den Benutzer im Webfront ein Datum und eine Uhrzeit eingeben zu lassen. Beispielsweise wann die Waschmaschine loslegen soll, oder der Roomba, oder bis wann man im Urlaub ist etc.PP.

Hat das schonmal wer hinbekommen? Wenn ich z.B. eine Variable vom Profil Unix Timestamp anlege und dafür eine Aktion festlege dann kommt nur eine rote Meldung „visualisierung nicht möglich“.

Und die Eingabe eines simplen Strings finde ich nicht besonders praktisch, weil man damit keinerlei Formatierung festlegen kann. So Rückmeldungen von wegen „Error 123: Du hast die führenden Nullen nicht eingegeben. Bitte nochmal!“ sind ja nicht so WAF-mäßig.

Hallo,

in dem Aktionscript, dass Du der Varibe zuweisen musst, kannst Du auch die Formatierung prüfen und entsprechend einschreiten.

Ich hatte das hier irgendwo mal im Forum gefunden:


//Script zur UHRZEITZUWEISEN aus dem Webfrontend

$WF_CONFIG_ID = 15622;

if($IPS_SENDER == "WebFront")
  {
   if  ((is_numeric(substr($IPS_VALUE,0,2)) == true) and
       (((int)substr($IPS_VALUE,0,2)) >= 0  ) and
       (((int)substr($IPS_VALUE,0,2)) <= 23 ) and
       ((substr($IPS_VALUE,2,1) == ":") or (substr($IPS_VALUE,2,1) == " ") or (substr($IPS_VALUE,2,1) == ".")) and
       (is_numeric(substr($IPS_VALUE,3,2)) == true) and
       (((int)substr($IPS_VALUE,3,2)) >= 0  ) and
       (((int)substr($IPS_VALUE,3,2)) <= 59 ))
      {
       SetValue($IPS_VARIABLE,   strtoupper(str_pad(substr($IPS_VALUE,0,2),2,"0",STR_PAD_LEFT))
                               . ":"
                               . strtoupper(str_pad(substr($IPS_VALUE,3,2),2,"0",STR_PAD_LEFT)));
      }
   else
      {
    //    WFC_SendPopup($WF_CONFIG_ID, "FEHLER BEI UHRZEIT EINGABE !!",
    //                                 "Zeitformat entspricht nicht <H1>00:00 - 23:59</H1>" . "

"
    //                                 . "Eingabe = '" . $IPS_VALUE . "'");

    echo(   "FEHLER BEI UHRZEIT EINGABE !! 
"
          . "Zeitformat entspricht nicht <H1>00:00 - 23:59</H1>" . "
"
          . "Eingabe = '" . $IPS_VALUE . "'");

      }
 }

Grüße

Andreas

Ja, sowas hätte ich natürlich auch machen können aber dabei kann der Benutzer eben leicht etwas „falsch machen“. Auch wenn er dann eine Meldung bekommt und nicht gleich das System abstürzt - für viele Nutzer(innen) ist das gefühlt das selbe.

Ich habe jetzt erstmal folgendes gemacht: Einen Timer erstellt der an dem auszulösenden Skript hängt und dann einen Link auf dieses Ereignis an der entsprechenden Stelle in der sichtbaren Interface-Baumstruktur. Mit dem Ergebnis dass dort eine kleine Uhr erscheint, und wenn man diese anklickt, ein Fenster in dem sich Wochentage und eine Uhrzeit (aber aus irgendeinem Grunde nicht genau 0:00 Uhr) auswählen lassen. Das sieht sogar ganz ansehnlich aus. Leider kann man nur ein einmaliges Ereignis am selben Tag, oder ein wiederkehrendes im Wochenrythmus, einstellen, aber ich habe das einfach umgangen indem ich den Timer im ausgelösten Skript immer deaktiviere. Also macht er die Aktion dann auf jeden Fall nur einmal.

Für die Sache mit dem Urlaubsende taugt das noch nicht, es sei denn man macht bloß einwöchige Kurztrips. Aber für den Roomba-Startplan ist es erstmal ok.

Und den Roomba um genau 0:00 Uhr starten will man sowieso nicht :wink:

Was auch hilfreich wäre: Wenn man irgendwo die auf solche Weise erzielte Benutzereingabe überprüfen oder auf Änderungen direkt reagieren könnte.

Aber was soll’s, das ist erstmal ok benutzbar so. Ich nehme mal an, das ist eine Baustelle an der es in Zukunft noch was geben wird :loveips:

Hallo Andreas,
Problem sehe ich ähnlich, also sicher noch Handlungs- und Lösungsbedarf.

Allerdings betrifft das m.E. neben den absolute Zeiten noch mehr die Zeitabstände, also Timeouts, Einschaltzeitdauer, Fenster-Auf-Dauer, Bewässerungsdauer usw., die optimal ebenfalls in „hh:mm“-Darstellung und dabei möglichst fehlervermeidend zu handhaben wären.

Hier unser an praktischen Erfahrungen optimiertes Workaround („unser“, weil Partnerin wegen absehbarem suboptimalen WAF gleich mit einbezogen bei Gestaltung):
Auswahl per Listen mit festen Stufungen, also alle z.B. 15min, je nach Sinnfälligkeit der konkreten Anwendung. Dabei werden generell intern nur Sekunden als Integer gehandhabt und höchstens per Profil „lesbar“ ausgegeben.

Alternativ (z.B. immer dann, wenn direkte Sekunden-Eingaben notwendig sind - höhere Genauigkeit, feinere Raster) gibt es eine freie Sekunden-Eingabe/Auswahl, dann aber zur Hilfe (richtig umgerechnet?) auch eine zweite nur-lese-String-Variable, in der sofort der umgerechnete hh:mm[:ss]-Wert angezeigt wird. Ggf. zählt diese hh:mm-Anzeige auch im 5sek-Zyklus runter (z.B. Zeit, bis Winmatic wieder schließt).

Das Prinzip klappt hier aber nur, weil wir fast nur noch das WF per Android bedienen, wo Auswahllisten als vor „OK“ scrollbare PopUp-Listen erscheinen. Das PC-WF mit seinen nur über wenige Werte reichenden Anzeigebereich (und einer davon wird bei jedem „Wisch“ erstmal gesetzt) ist dafür völlig ungeeignet.

Glücklich bin ich damit aber nicht wirklich. Zum einen wirds auf dem Display schnell unübersichtlich, weil so viele Elemente doppelt darzustellen sind (Auswahl zur Integer-Eingabe neben (Restwert-)Anzeige als „hh:mm[:ss]“), außerdem werden sehr viele vorzudefinierende Werte im Profil gebraucht.

Die Alternative der wahlfreien Integer-Eingabe der Sekunden klappt bei uns, weil meine Partnerin zum Glück mental in der Lage ist, damit umzugehen und genügend echte Intelligenz und Abstraktionsvermögen besitzt, sich Viertelstunden- oder auch mehrere Stunden als Sekunden abgebildet vorzustellen. Wenn ich jedoch da so 2-3 Frauen zurückdenke, erinnere ich mich, dass es auch Exemplare mit lediglich esoterischem Pseudointellekt gibt, wo das sicher problematisch wäre… :rolleyes:

Es gilt hier sicher noch eine wirklich effektive und fehlervermeidende sowie einfache und übersichtliche Lösung zu finden, erstrecht für absolute Datums-/Zeitangaben. Ähm…: Siri/Alice? :smiley: Ok, auch nicht wirklich, weil nicht lautlos bedienbar… Aber die Idee ist gut: Warum machen wir nicht das gleiche wie Siri, also einfach einen Sinnfälligkeits-Test nebst Korrektur nach wahlfreier Eingabe? Also nicht „meckern“ sondern korrigieren und zur OK-Bestätigung (nur wenn korrigiert wurde) nochmal „vorlegen“. Fehlermeldung nur, wenn absolut nicht interpretierbar. Korrekturen: Whitespaces eliminieren, Datums-/Zeit-Überhänge auf Ultimo bzw. Maximum eingrenzen, „;“ --> „:“ und „,“ --> „.“ usw.

Was mich daran wieder stören würde, wär dieses Umgeschalte zwischen Sonderzeichen (":") und echten Werten am Smartphone. Obwohl, solange es nur Ziffern, „.“ und „:“ blieben?

Gruß Gerd