Uhrzeit für Regeln einstellen

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

Antworten
Thomasv
Beiträge: 2
Registriert: 13. Jan 2024 13:22
Answers: 0

Uhrzeit für Regeln einstellen

Beitrag von Thomasv »

Hallo alle miteinander,
Ich bin zwar schon langer Oh User, aber eher "Anfänger" :-). Habe jetzt nach langem gezwungenermaßen von 2.4 auf 4.1 gewechselt, und das kompletten Neuaufbau betrachtet - und in dem Zuge einige Sahcne optimiert. Eines was ich möchte, ist in der GUI die Möglichkeit zu haben, eine Uhruezit für die "Weckerrule" am nächsten Tag zu setzen, da die Aufstehzeiten jetzt mit Homoffice ja doch ziemlich variieren. Da stoße ich aber an mein Limit, und trotz googlen, Videos etc. bekomme ich es einfach nicht hin.
Habe es mit dem "time picker" Plugin aus der Openhab Community veruscht, da bekomme ich aber keine Werte rein. Dann ahbe ich ein anderes Widget - damit bekomme ich zwar die Möglichkeit, eine Uhrzeit einzustellen, ich weiß aber nicht wo der die hinspeichert.
Also ganz offen, ich bin ratlos. Habe aich schon in verschiedenen anderen Plattformen versucht Hilfe zu finden, aber irgendwie scheint das nicht so trivial zu sein.
Also, ich nehme gerne jeden Support und Hinweis!
Danke, lg

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

Re: Uhrzeit für Regeln einstellen

Beitrag von udo1toni »

Herzlich willkommen im openHAB-Forum!

Was meinst Du mit Time Picker? Es gäbe für die komfortable Eingabe von Datum und Zeit das DateTime Standalone Widget (direkt im Store verfügbar). Du suchst dieses Widget über den Store und fügst es über Add (bzw. Install) hinzu.
Weiterhin brauchst Du ein DateTime Item, welches Du über dieses Widget steuerst.

Das Widget steht in der Liste der Cells zur Verfügung, das heißt, Du wählst in Deiner Main UI Page, in der Du das Widget einfügen willst "Add Cell" aus und bekommst bei einem Klick auf die leere Cell das Widget unter Personal Widgets in der Liste angeboten.
Das Widget kennt nur Zwei Parameter, das Label und das Item. Sieht als Code so aus:

Code: Alles auswählen

config:
  label: Overview
blocks:
  - component: oh-block
    config: {}
    slots:
      default:
        - component: oh-grid-cells
          config: {}
          slots:
            default:
              - component: widget:rlk_datetime_standalone
                config:
                  item: myDate
                  label: Weckzeit
Eine Rule, die auf dieses Item triggern soll, ist natürlich auch noch vonnöten:

Code: Alles auswählen

rule "Mein Wecker"
when
    Time is MeinItem //timeOnly
then
    Alarm.sendCommand(ON)
end
Die Rule kannst Du genauso auch über die UI erstellen, ob als Code oder mit Blockly, ganz nach Belieben.
Das Schlüsselwort timeOnly sorgt wahlweise dafür, dass die Rule das Datum (welches immer im Item Status mitgeliefert wird) nicht berücksichtigt.
In dem Moment, in dem die eingestellte Zeit erreicht wird, wird die Rule ausgeführt.

Vielleicht gibt es auch noch ein anderes Widget, welches aber nicht über den Marketplace zur Verfügung steht, da bräuchte ic hdann einen Link, wo dieses herunterzuladen ist ;)
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.7, LXC), mit openHABian eingerichtet

Harka
Beiträge: 397
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Uhrzeit für Regeln einstellen

Beitrag von Harka »

Moin,
der "Trick" beim time picker ist, dass das verknüpfte Item vom Typ DateTime nicht leer sein darf. Sobald Du einen Wert rein schreibst erweckt Du es zum Leben. Das geht sehr schnell über Scenes (Wert 10000) senden und ohne die Scene zu speichern wieder raus.
Um dieses Item als Auslöser für die Rule zu nutzen gibt es den timer.DateTimeTrigger (in der UI Add_Trigger/Show_all anklicken)

Benutzeravatar
peter-pan
Beiträge: 2611
Registriert: 28. Nov 2018 12:03
Answers: 27
Wohnort: Schwäbisch Gmünd

Re: Uhrzeit für Regeln einstellen

Beitrag von peter-pan »

...ich mach's wie Udo, benutze aber die Standard-Wigets.

a) oh-input-card
oh-input-card.jpg
Yaml-Code:

Code: Alles auswählen

component: oh-input-card
config:
  clearButton: true
  inputmode: text
  item: testTime1
  name: Eingabe
  sendButton: true
  showTime: true
  title: Zeiteingabe für den Wecker
  type: datetime-local
  useDisplayState: false
  validate: true
  validate-on-blur: true
b) oh-input-item (innerhalb einer oh-list-card)
oh-input-item.jpg
Yaml-Code

Code: Alles auswählen

component: oh-input-item
config:
  after: =items.testTime1.displayState
  clearButton: true
  icon: f7:alarm
  iconColor: blue
  inputmode: numeric
  item: testTime1
  name: Eingabe
  outline: false
  placeholder: =items.testTime1.displayState
  required: true
  sendButton: true
  showTime: true
  title: Zeiteingabe für Trigger
  type: datetime-local
  useDisplayState: false
  validate: true
  validate-on-blur: true
DateTime-Item:

Code: Alles auswählen

DateTime testTime1 "Zeit-Item für Tests, mit pattern"  { stateDescription="pattern"  [pattern="%1$tH:%1$tM"] } // Text-Rule 
Regel:

Code: Alles auswählen

// Start über OH-Widget (z.B.: oh-input-item oder oh-input-card)
rule "ItemTrigger-Rule"

  when
    Time is testTime1 timeOnly
  then
    // dein Code
    logInfo("testTime1","testTime1 DSL-Text ist {}",testTime1)

end
Das Datum kann hier bei der Eingabe vernachlässigt werden, da der Trigger nur auf die Zeit reagiert.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.2.2 openhabian

Antworten