Offset direkt in rule nutzen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

bdream
Beiträge: 7
Registriert: 2. Feb 2023 16:16
Answers: 0

Offset direkt in rule nutzen

Beitrag von bdream »

Nach langem Probieren habe ich es endlich hinbekommen. Das Licht geht mit Sonnenuntergang an und bei Sonnenaufgang aus.

Dazu habe ich die folgenden rules eingerichtet.

Code: Alles auswählen

rule "test04-ON"
when
      Channel 'astro:sun:local:civilDusk#event' triggered START  //  Abenddämmerung
then
      sendCommand(shellyplugs04_Betrieb, ON)
      logInfo("Astro", "Abenddämmerung Licht an Test04")
end

Code: Alles auswählen

rule "test04-OFF"
when
      Channel 'astro:sun:local:civilDawn#event' triggered START  //  Morgendämmerung
then
      sendCommand(shellyplugs04_Betrieb, OFF)
      logInfo("Astro", "Abenddämmerung Licht an Test04")
end
Um das Licht so zu schalten, dass es etwas früher angeht und später ausgeht möchte ich die Rules mit OFFSETS versehen, verstehe aber nicht, wie ich das machen soll.

Kann jemand helfen?

Vielen Dank!!! :)
Viele Grüße
bdream


openHAB 4.1.1 auf Raspberry Pi 3

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

Re: Offset direkt in rule nutzen

Beitrag von udo1toni »

Herzlich willkommen im openHAB Forum!

Die Rule ist die falsche Stelle für den Offset :)

Setze den Offset stattdessen im entsprechenden Channel - und denke auch daran, dass es noch weitere Channel gibt, die evtl. "besser" geeignet sind (statt civilDusk/civilDawn einfach dusk/dawn)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

bdream
Beiträge: 7
Registriert: 2. Feb 2023 16:16
Answers: 0

Re: Offset direkt in rule nutzen

Beitrag von bdream »

Im Channel? Du meinst in der Art?

Code: Alles auswählen

Channel 'astro:sun:local:civilDusk#event' offset=20 triggered START


Mit den unterschiedlichen Channels muss ich mich wohl auch noch auseinander setzten ;)

Eigentlich wollte ich mittels OpenWeatherMap arbeiten, bin aber gescheitert. Habe dann im Forum gesehen, dass das Astro wohl die Wahl sein sollte.
Damit komme ich jetzt ja erst mal in die richtige Richtung.
Viele Grüße
bdream


openHAB 4.1.1 auf Raspberry Pi 3

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

Re: Offset direkt in rule nutzen

Beitrag von udo1toni »

Nein. Du bist immer noch in der Rule (nur halt im Trigger-Teil)
Du kannst die Channel konfigurieren.
Ich habe das astro Thing per Text angelegt, da sieht das so aus:

Code: Alles auswählen

// Astro
Thing astro:sun:local "Sonne" @ "zuhause" [geolocation="49.9,8.6,130", interval=300] {
    Channels:
        Type start : civilDawn#start [
            offset=10,
            earliest="06:00",
            latest="08:00"
        ]
        Type start : civilDusk#start [
            offset=15,
            earliest="16:00",
            latest="22:00"
        ]
        Type rangeEvent : civilDawn#event  [
            offset=10,
            earliest="06:00",
            latest="08:00"
        ]
        Type rangeEvent : civilDusk#event  [
            offset=15,
            earliest="16:00",
            latest="22:00"
        ]
}
Die Offsets kannst Du aber natürlich genauso gut auch über die UI einstellen. Du musst lediglich darauf achten, tatsächlich den event-Channel zu konfigurieren. Ich habe bei mir auch jeweils noch die Startzeit angepasst, weil ich mir die in der UI anzeigen lasse, das ist aber für das Event unerheblich, da zählt nur der jeweilige event-Channel.

Ansicht als yaml (gekürzt auf die essenziellen Channel):

Code: Alles auswählen

UID: astro:sun:local
label: Sonne
thingTypeUID: astro:sun
configuration:
  useMeteorologicalSeason: false
  interval: 300
  geolocation: 49.9,8.6,130
location: zuhause
channels:
  - id: civilDawn#start
    channelTypeUID: astro:start
    label: Startzeit
    description: Die Startzeit des Ereignisses
    configuration:
      offset: 10
      forceEvent: false
      earliest: 06:00
      latest: 08:00
  - id: civilDawn#event
    channelTypeUID: astro:rangeEvent
    label: Zeitraum
    description: Zeitraum für ein Ereignis.
    configuration:
      offset: 10
      forceEvent: false
      earliest: 06:00
      latest: 08:00
  - id: civilDusk#start
    channelTypeUID: astro:start
    label: Startzeit
    description: Die Startzeit des Ereignisses
    configuration:
      offset: 15
      forceEvent: false
      earliest: 16:00
      latest: 22:00
  - id: civilDusk#event
    channelTypeUID: astro:rangeEvent
    label: Zeitraum
    description: Zeitraum für ein Ereignis.
    configuration:
      offset: 15
      forceEvent: false
      earliest: 16:00
      latest: 22:00
Die Grenzwerte sorgen außerdem dafür, dass der Trigger frühstens bzw. spätestens zum programmierten Zeitpunkt auslöst.
Falls Du auch den "richtigen" Zeitpunkt als Trigger brauchst, wie erwähnt könnte evtl. ein anderer Trigger noch frei und sinnvoll nutzbar sein, oder Du definierst einfach eine zweite Sonne :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

bdream
Beiträge: 7
Registriert: 2. Feb 2023 16:16
Answers: 0

Re: Offset direkt in rule nutzen

Beitrag von bdream »

Das ist wahrscheinlich das Problem. Das Denken wie ein Profi in openHAB.

Mein Astro Thing ist einfach da :?
... und sieht so aus:

Code: Alles auswählen

UID: astro:sun:local
label: Lokale Sonnendaten
thingTypeUID: astro:sun
configuration:
  useMeteorologicalSeason: false
  interval: 300
  geolocation: 50.51120,9.22730
location: BergHeim
Dann habe ich eben die rule als Textfile erstellt.
Kann ich jetzt ein .thing erstellen und sozusagen das, was ich jetzt schon habe und nicht in meinem Ordner openHAB-config/things habe, weil der eben leer ist, überschreiben?
Oder muss ich etwas anderes löschen?
Es ist einfach total schwer, trotz Tonnen von Tutorials, diese Denke zu verstehen und umzusetzen.
Viele Grüße
bdream


openHAB 4.1.1 auf Raspberry Pi 3

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

Re: Offset direkt in rule nutzen

Beitrag von udo1toni »

Das Thing kannst Du einfach bearbeiten, da gibt es ja nicht nur Thing- und Codeansicht, sondern in der Mitte auch Channels, da tauchen alle Channels auf, die das Thing bietet.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

bdream
Beiträge: 7
Registriert: 2. Feb 2023 16:16
Answers: 0

Re: Offset direkt in rule nutzen

Beitrag von bdream »

Sorry, aber ich verstehe es nicht. Ich sehe wohl die Channels, die ich aber nicht mit Code versehen kann :cry:

Um im Beispiel

Code: Alles auswählen

Channel 'astro:sun:local:civilDusk#event' triggered START 
zu bleiben, weil das ja schon mal im ersten Schritt funktioniert, wie bekomme ich da die Informationen um den Offest rein. Ich nehme an, das was du unter YAML geschrieben hast wäre das richtige.
Du hast jetzt zu allen Channels etwas eingetragen. Ist das im Ende wirklich alles in einer Datei?
Wo kommt diese hin, wenn ich doch die Channels nicht bearbeiten kann :?:

Wahrscheinlich fehlt mir hier ein grundlegendes Verständnis um die Unterschiede von einfach Allem :shock: .
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Viele Grüße
bdream


openHAB 4.1.1 auf Raspberry Pi 3

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

Re: Offset direkt in rule nutzen

Beitrag von udo1toni »

Wenn Du den einzelnen Channel anklickt, gibt es jeweils darunter den Link "Configure Channel..." Nun rate mal... :)

Die Codeansicht ist lediglich ein eleganter Weg, mit wenig Daten maximale Information zu transportieren, im Zweifel kannst D auch den geposteten Code nehmen und einfach auf der Codeansicht einfügen (immer vorausgesetzt, der Code ist korrekt eingefügt worden) Das heißt, Du ersetzt Deinen Code einfach. Die ID des Things bleibt dabei erhalten, aber jegliche Channelkonfiguration wird dann mit der aus dem Code überschrieben.
Das ist hier natürlich nicht zielführend, aber oft an anderen Stellen. Du kannst alles,m was über die Textkonfiguration geht, auch über die UI konfigurieren, es gibt sogar ein paar Dinge, da gibt es keinen direkten Weg über die Textdateien, wohl aber über die UI. Kann natürlich sein, dass Du den entsprechenden Knopf erst suchen musst :) aber irgendwas ist ja immer...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

bdream
Beiträge: 7
Registriert: 2. Feb 2023 16:16
Answers: 0

Re: Offset direkt in rule nutzen

Beitrag von bdream »

Okay, das mit dem Configure Channel hätte ich auch sehen/verstehen können.

Wie verhält es sich denn mit dem Unterschied zwischen dem Eintrag als Code und im Configure Channel?
Also genauer, wenn ich etwas im Channel konfiguriere und einen Code im selben Channel eintrage, was ist dann führend?
- wenn ich an beiden Stellen z.B. einen Offset eintrage?
- wenn ich z.B. an einer Stelle einen Offset eintrage und an der anderen Stelle earliest: und latest: eintrage?

vielen Dank schon mal im Voraus :)
Viele Grüße
bdream


openHAB 4.1.1 auf Raspberry Pi 3

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

Re: Offset direkt in rule nutzen

Beitrag von udo1toni »

Die Code Ansicht wird aus der eingetragenen Konfiguration erzeugt.
Anders verhält es sich, wenn Du ein Thing über eine *.things Datei anlegst (auch eine Art Code Ansicht...) Things und Channel, die so erzeugt wurden werden in der UI mit einem kleinen Schloss markiert, um zu zeigen, dass Du sie nicht bearbeiten kannst. Die Ansicht lässt sich aber öffnen, z.B. um die Konfiguration in den verschiedenen Ansichten zu betrachten...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten