Eingabe Uhrzeit in sitemap ?

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

Antworten
Mattes
Beiträge: 23
Registriert: 23. Mär 2020 13:37

Eingabe Uhrzeit in sitemap ?

Beitrag von Mattes »

Hallo,
ich brauch mal wieder :roll: eure Unterstützung...
In einer Layout page habe ich (vor dem Start mit sitemaps) mir eine Eingabe für Uhrzeiten (Schaltzeit) "zusammengeklickt"... das funktioniert auch gut und ist gut zu handeln.
Nun will ich ja für die witere Bedienung/Visualisierung sitemaps erstellen - da kommt bereits das erste Problem auf... gibt es ein "Eingabe-Feld" für die Uhrzeit vom Typ DateTime?
Das Eingabefeld (Input-Card) sieht so aus:

Code: Alles auswählen

component: oh-input-card
config:
  clearButton: true
  footer: =items.Uhr1_On1.displayState
  inputmode: text
  item: Uhr1_On1
  outline: true
  placeholder: hh:mm:ss
  sendButton: true
  title: Uhr1_EIN1
  type: time
Für eine ähnliche Eingabe finde ich leider nichts bei meiner Suche im Netz :o habe da Lösungen mit Dezimal gefunden, dazu müsste ich dann wohl meine "Zeitschaltuhr" umbauen, die Regel funktioniert aber gerade gut, daher hätte ich gern eine identische Eingabe in der Sitemap.

Die rule Zeitschaltuhr sieht mit den variablen so aus... (das geht bestimmt komfortabler/besser) aber für's erste...
var cfgT2On1 = (Uhr2_On1.state as DateTimeType).getZonedDateTime()
var cfgT2Off1 = (Uhr2_Off1.state as DateTimeType).getZonedDateTime()


// Einschalten + Ausschalten - fuer eine Minute aktiv !

if ((now.getHour == cfgT2On1.getHour && now.getMinute == cfgT2On1.getMinute) || (now.getHour == cfgT2On2.getHour && now.getMinute == cfgT2On2.getMinute)) {
DIY1_1s.sendCommand("ON")
}
else if ((now.getHour == cfgT2Off1.getHour && now.getMinute == cfgT2Off1.getMinute) || (now.getHour == cfgT2Off2.getHour && now.getMinute == cfgT2Off2.getMinute)) {
DIY1_1s.sendCommand("OFF")
}
end
...und jetzt bitte nicht nach dem Sinn/Unsinn von festen Zeiteingaben fragen: meine "Regierung" möchte das gern für einige Dinge so haben - und ihr wisst ja: happy wife , happy life :mrgreen:

Danke schon mal für euren Input

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Eingabe Uhrzeit in sitemap ?

Beitrag von udo1toni »

Zuerst mal: Feste Zeiten sind kein Problem. Es ist nur nicht besonders smart :)
Aber als Denkanstoß: Man kann z.B. im Schaltschrank eine Zeitschaltuhr einbauen. Frage: Wer bestimmt die Zeiten? Zweite Frage: Wer programmiert die Zeiten? Ich gebe Dir die Antworten auch gleich, nämlich zu 1: Deine Frau, zu 2: Du.
Es gibt an dieser Stelle keinen Unterschied zu openHAB. Ja, man kann dafür wochenlang irgendwelche Eingabemasken mit Uhrzeitfeldern bauen (nein, nicht in einer Sitemap), am Ende des Tages bist Du aber der Einzige, der das nutzt. Die eigentliche Frage ist also, warum willst Du dafür eine Sitemap haben?
Und noch einen Schritt zurück: Die Sitemap ist eine "alte" Methode, eine UI für openHAB zu basteln. Da jeder moderne Browser und alle aktuellen Apps für openHAB wahlweise auch die Pages öffnen können, sehe ich keinen Grund, zusätzlich zu einer Page auch noch eine Sitemap zu bauen. Andersrum ist das schon eher sinnvoll, weil es eben für die Pages massig Widgets gibt, die es für Sitemaps nicht gibt.

Es gibt in openHAB die einfache Möglichkeit, Schaltzeiten fix über Time cron Trigger anzulegen, die Rules triggern zum gewählten Zeitpunkt und lösen z.B. das Schließen der Rollläden aus. Ja, den Trigger kannst Du nur über die Programmierung anpassen, aber in openHAB3 geht das zur Not auch komfortabel über die Main UI.
Inzwischen gibt es sogar einen Trigger Time is, wobei man auch ein DateTime Item angeben kann, wahlweise kann man auf die Auswertung des Datumsteils verzichten.

In der Basic UI gibt es keine Möglichkeit, ein DateTime Item zu setzen, genauso wenig kann man ein String Item setzen, diese Items sind alle nur lesbar (bzw. sie können in der Sitemap nur zur Anzeige verwendet werden).

Es gibt verschiedene Optionen, dennoch eine Zeiteingabe zu realisieren, beispielsweise kannst Du ein Switch Widget (bzw. mehrere) mit einem Number Item verbinden. Das Switch Widget wird dann genutzt, um mehrere Schaltflächen zu generieren, z.B. eine -60, eine -10, eine -1, eine +1, eine +10, eine +60, also sechs Schaltflächen. Das Number Item triggert jedes Mal, wenn eine der Schaltflächen betätigt wird ein Event received command, welches von einer Rule ausgewertet wird.
Die Rule macht nichts anderes, als den Befehl (also die konkrete Zahl) zur Schaltzeit zu addieren. Innerhalb der selben Rule wird auch ein Überlauf geprüft, also ob die Schaltzeit kleiner 0 oder größer 1439 wird, dann wird entweder 1440 addiert, so dass dir Zahl wieder größer als 0 ist, oder es wird 1440 abgezogen, so dass die Zahl wieder kleiner 1440 ist. Nun kannst Du also mit den größten Schaltflächen die Stunde einstellen, während Du mit den anderen Schaltflächen bequem die Minuten steuern kannst.
Zusätzlich braucht es noch eine Anzeige für die Schaltzeit, damit Du sehen kannst, was Du machst.

Eine andere Variante könnte eine Liste mit hinterlegten Schaltzeiten sein. Bitte unter welchen Umständen möchtest Du tatsächlich frei minutengenaue Schaltzeiten festlegen?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Mattes
Beiträge: 23
Registriert: 23. Mär 2020 13:37

Re: Eingabe Uhrzeit in sitemap ?

Beitrag von Mattes »

Wow!...

Udo das ist mal wieder eine Antwort die viel Input liefert - danke für die Mühe hier so viel Infos zu liefern.
Ja du hast völlig recht, smart ist das nicht :roll: aber wenn Frau etwas gewohnt ist, also jetzt Schaltzeiten eingeben kann, dann ist es mühselig etwas anderes umzusetzen. Hierzu noch eine Zusatzinfo: ich löse gerade zum Grossteil ein Powernet BJ System ab, hierzu gehört eben auch ein BJ Touchpanel wo eben diese Schaltzeiten eingegeben werden.
Ich habe schon einige Bsp. an sitemaps oder auch widgets gesehen wo Timer/Zeiten mittels up/down (Pfeil) als Zahl eingegeben werden, nun bin ich erst mal (noch) nicht der tiefe Kenner der rules und scripte und wie gepostet nun glücklich eine Page "zusammengeklickt" die funktioniert.

Da werde ich mich noch mehr mit beschäftigen müssen (und wollen) um das bequem auf einer Page hinzukriegen. Im Moment stört mich bei der Seite (bzw. den widget input card) die mehr oder weniger feste Grösse der Widgets. Evtl. muss sich da mal weiter in die Tiefe... wie erstellt man sich passende Widgets selbst :? Auch würde ich eher nicht fest für jeden Timer/Zeitschaltuhr feste Input-Felder erstellen woll (also als Bsp. vier je Timer 2 x EIN 2 x AUS) um zwei Schaltzyklen zu definieren... hier eher den Timer in einem Listenfeld auswählen und dann zugehörig die Zeiten eingeben ;)
Also deine gute und ausgiebige Antwort regt jetzt wieder zu Denkanstössen an (soll ja auch so sein :D ) nun habe ich erst mal wieder was zu denken. Wahrscheinlich mach ich es erst mal so wie angeregt... feste Schaltzeiten in der rule - und später wenn gewünscht (fürchte schon) die Eingabe am abzulösenden Panel.
Um das dann hin zu kriegen gibt es bestimmt wieder neue Beiträge mit vielen Fragen von mir... :roll:

Gruss Mattes

Benutzeravatar
udo1toni
Beiträge: 13864
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Eingabe Uhrzeit in sitemap ?

Beitrag von udo1toni »

Immer gerne :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten