Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
gibt es eigentlich ein Widget, mit dem man Datum und Uhrzeit auswählen kann und dann entsprechend formatiert in ein Item schreiben?
Konnte in der Doku nichts finden.
{{ basic.input(id, item, type, min, max, step) }}
id
unique id for this widget (optional)
item
an item, sent values are:
- date & dateflip: Date object resp. ISO 8601 - e.g. '2017-11-29T23:00:00.000Z'
- time & timeflip: String with 24hr clock - e.g. '18:31:27'
- duration & durationflip: Number of seconds
- any other: Entered value
type
'text', 'number', 'date', 'dateflip', 'datecal', 'dateslide', 'time', 'timeflip', 'duration', 'durationflip' (optional, default: text)
min
lowest allowed value (optional)
- date & dateflip: Number of days before today
- time & timeflip: Format is 24hr clock - e.g. '18:31:27'
- duration & durationflip: in seconds
max
greatest allowed value (optional)
- date & dateflip: Number of days after today
- time, timeflip: Format is 24hr clock - e.g. '18:31:27'
- duration & durationflip: in seconds
step
step between two values (optional, no effect on date/time types)
Meine Installation: VM Debian Buster SH NG 1.8.1, SmartVISU 3.0, KNX, DMX, 1-wire, Fortigate 30E IPS, VMware vSphere 6.7
Danke, das hatte ich schon gefunden.
Ich suche ein Widget, um Datum und Uhrzeit zu erzeugen. Die Widgets können immer nur eines.
Das Ergebnis soll so aussehen:
ich muss noch einmal nachfrage: Dient der basic.input mit time/date nur der Einstellung, ausgehend von der Zeit der Anzeige oder wird auch der initial der aktuelle Wert des Items angezeigt und kann dann geändert werden?
hab's mal eben in der Doku von SV2.9 ausprobiert: Datum und Uhrzeit werden jeweils aus dem item übernommen als Startwerte für die Eingabe.
Edit:
habs nochmal probiert, weil ich mir unsicher war. Wenn das item noch leer ist, wird die aktuelle Zeit und das aktuelle Datum als Eingabewert vorgeschlagen. Sobald das item einmal gesetzt ist, wird der zuletzt gesetzte Wert beibehalten - auch als Voreinstellung für die Eingabe.
Edit:
habs nochmal probiert, weil ich mir unsicher war. Wenn das item noch leer ist, wird die aktuelle Zeit und das aktuelle Datum als Eingabewert vorgeschlagen. Sobald das item einmal gesetzt ist, wird der zuletzt gesetzte Wert beibehalten - auch als Voreinstellung für die Eingabe.
Stimmt. Bei mir hat das Format nicht gepasst.
Noch eine Frage: Wie kann ich es ändern, dass, wenn keine anzuzeigendes Zeit im item ist, nicht die aktuelle Zeit angezeigt wird, sondern --:-- oder N/A oder so was?
Danke Euch.
Solange Du keine Zeit eingegeben hast, bleibt das Anzeigefeld leer. Wenn Du das Uhrensymbol erstmalig anklickst, wird das aktuelle Datum / die aktuelle Zeit auf dem Selektor angezeigt. Das Anzeigefeld bleibt weiter leer, bis Du eine Zeit eingestellt hast.
Da dies über jQuerymobile und JTSageDateBox gemacht wird, ist eine Änderung sicher eine größere Operation. Du könntest höchstens einmal mit der update-Methode des widgets in basic.js experimentieren, in der die Voreinstellung des Feldes gesetzt wird.
Ich baue eine Anzeige für Schaltzeiten der Heizung. Die hat 4 Schaltpaare mit An/Aus. Bislang hatte ich bei nicht benutzen Paaren immer --:-- verwendet, im Item von shNG. Das wurde durch smartVISU gelesen und als aktuelles Datum/Zeit angezeigt, da es nicht gelesen werden konnte. Ich habe es nun anders gelöst. Danke.
Kann man bei basic.input mit der Option "date" auch nur das Datum, also ohne Zeit im Format yyyy-mm-dd ausgeben und dem Item zuweisen lassen?
Hallo,
kann es sein, dass bei basic.input mit der Option "date" die Zeitzone nicht richtig in das Item übergeben wird?
Wie komme ich darauf?
Ich stelle bspw. den 01. März 2020 im Widget ein und klicke "Datum übernehmen". Im Widget wird dann der 01.03.2020 richtig anzeigt. In das Item übergeben wird aber
Code:
2020-02-29T23:00:00.000Z
Hier fehlt die richtige Zeitzone. Diese ist in der Konfig der smartVISU aber richtig eingestellt.
Kannst Du das nachstellen?
Dein Vertrauen ehrt mich. Ich bin da aber bisher echt noch überfragt und muss mich erst einarbeiten. Habe das zurück gestellt, weil ich gerade heftig am Release von V2.9 arbeite, um wenigstens das, was bisher an offenen Punkten und Issues erfasst ist, abzuarbeiten. Deshalb habe ich Dir noch nicht geantwortet. Sorry dafür.
Die Datebox entstammt dem sehr mächtigen Paket JTSage (https://jtsage.dev/DateBox/). Dieses beinhaltet auch Optionen zu Ausgabeformaten. Damit sollten Deine Format-Probleme lösbar sein. Wahrscheinlich müssen wir dazu den Parametersatz des input-widgets um eine Format-Option erweitern, oder wir schieben dies in die Config und überschreiben die Formate der Datebox global.
In der Doku von JTSage habe ich auf die Schnelle nichts zur Zeitzone gefunden. Interessant wäre vor allem, ob das widget die Zeit falsch übergibt, ober ob SmarthomeNG dies noch einmal wandelt. Das lässt sich testen, indem man im widget in der Datei basic.js per "alert"-Funktion den entsprechenden Wert ausgibt. Alternative: im offline-Modus arbeiten und nach Setzen des Datums in der Datei
Als Zeitzone ist in smartVISU "Berlin" eingestellt. Somit müsste aus einer Sicht der Wert nicht "2020-02-27T23:00:00.000Z" sein, sondern "2020-02-27T23:00:00.000+01:00" oder?
Mein Ziel ist, nur das Datum also den 28.02.2020 zu übergeben und das im Isoformat also 2020-02-28.
Mist, ich hatte gehofft, mit BSE weiter zu kommen (blame someone else)
Aber jetzt wissen wir wenigstens, wo wir suchen müssen. Hast Du Zeit und Lust, in JTSage mal nach den benötigten Optionen zu schauen?
Hast Du Zeit und Lust, in JTSage mal nach den benötigten Optionen zu schauen?
Das kann ich gern machen.
Ich versuche erstmal die Zusammenhänge zu verstehen.
Das Widget wird mit basic.html eingebunden. Das greift dann auch basic.js zu. Dort findet sich in Zeile 650 und 651 die Übergaben von der Datebox, richtig?
Code:
else if(mode == 'datebox' || mode == 'flipbox' || mode == 'calbox' || mode == 'slidebox') // data type date
newval = this.element.datebox('getTheDate');
Die Funktion "getTheDate" der Datebox ist beschrieben mit "Return the current date object for any date mode." siehe hier
Auch richtig?
D.h. der Output der Datebox wird direkt übernommen, oder wird der noch irgendwo anders formatiert (Ist meine Vermutung)?
Hier ist beschrieben, wie man global das Format ändert. Das könnte auch funktionieren.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar