Ankündigung

Einklappen
Keine Ankündigung bisher.

Widget zur Auswahl von Datum und Uhrzeit

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Widget zur Auswahl von Datum und Uhrzeit

    Hallo,

    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.

    Danke Euch.

    #2
    Hallo,

    ja, gibt es. Ist eine Variante des basic.input (verfügbar im Develop Branch der smartvisu).

    Viel Erfolg!

    Kommentar


      #3
      Zitat von aschwith Beitrag anzeigen
      ja, gibt es. Ist eine Variante des basic.input (verfügbar im Develop Branch der smartvisu).
      Prima.
      Ein Widget mit Datum und Zeit gibt es nicht, oder?

      Ich müsste ein Item so füllen:
      1970-01-01 00:00:00

      Kommentar


        #4
        In der Doku der 2.9

        basic.input
        Displays an input field
        Parameters

        {{ 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 Stretch SH NG 1.6, SmartVISU 2.9, KNX, DMX, 1-wire, Cisco ASA 5512X IPS, VMware vSphere 6.7

        Kommentar


          #5
          yachti ht

          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:
          Code:
          1970-01-01 00:00:00

          Kommentar


            #6
            Hallo,

            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?

            Weiß das jemand?

            Kommentar


              #7
              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.
              Zuletzt geändert von wvhn; 14.02.2020, 18:25.

              Kommentar


                #8
                Zitat von wvhn Beitrag anzeigen
                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.

                Kommentar


                  #9
                  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.

                  Kommentar


                    #10
                    wvhn

                    DANKE, für Deine Antwort.

                    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?

                    Kommentar


                      #11
                      wvhn

                      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?

                      Danke dir.

                      Kommentar


                        #12
                        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
                        Code:
                        temp/offline_<DeineSeite>.var
                        nachsehen.

                        Kommentar


                          #13
                          Danke für Deine Anwort.

                          Ich habe meine Seite offline getestet:
                          In der Datei steht folgender Eintrag:
                          Code:
                          viessmann.heizkreis_a1m1.ferienprogramm.starttag = "2020-02-27T23:00:00.000Z"
                          viessmann.heizkreis_a1m1.ferienprogramm.endtag = "2021-02-27T23:00:00.000Z"
                          So kommen die Werte auch in der shNG an.

                          Das Widget in der Visu zeigt:
                          Anmerkung 2020-02-28 132449.png

                          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.

                          Danke

                          Kommentar


                            #14
                            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?

                            Kommentar


                              #15
                              Zitat von wvhn Beitrag anzeigen
                              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.

                              Kommentar

                              Lädt...
                              X