Astro Binding offset

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
frankl
Beiträge: 5
Registriert: 22. Okt 2021 10:44
Answers: 0

Astro Binding offset

Beitrag von frankl »

Moin Gemeinde,

ich versuche in OH3 folgendes hinzukriegen:
1. W-LAN-Schalter an meine Außenbeleuchtung, diese soll 5 Minuten vor dem Ende der bürgerlichen Abenddämmerung angeschaltet werden
-> realisiert über Astro-Binding -> channel CivilDusk#end -> offset -5 ... funktioniert

2. Anzeige des Endes der bürgerlichen Abenddämmerung in der Android-App zum Vergleich und Bestimmen, ob die Verschiebung von 5 min auch okay ist.
-> realisiert über pages -> item TextLabel -> channelCivilDusk#end

nun wird logischer Weise beim TextLabel auch der durch den offset veränderte Wert angezeigt :(

meine Idee: Kann ich den Channel vom AstroBinding irgendwie "duplizieren"? Wenn ja, wie? ... oder muss ich die Zeitverschiebung über den Switch realisieren, wobei ich nicht wüsste, wie der Switch schalten soll, wenn das Ereignis noch nicht eingetreten ist ...

Irgendwie drehe ich mich im Kreis.

Hat jemand eine Idee?

VG
Frank

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

Re: Astro Binding offset

Beitrag von peter-pan »

Das mit dem Duplizieren ist schon mal nicht schlecht. Du brauchst dazu ein neues Thing. Da ich noch mit der Text-Konfiguration arbeite, hier mein Text-Things-File, da kannst du die offsets sehen.

Code: Alles auswählen

Thing astro:sun:local     "Sonnen Daten"    [geolocation="23.123456,14.123456,502", interval=300]
Thing astro:moon:local    "Mond Daten"      [geolocation="23.123456,14.123456,502", interval=300]
                                        
Thing astro:sun:minus90   "Offset -90"      [geolocation="23.123456,14.123456,502", interval=300]{
  Channels:
    Type rangeEvent : set#event [
      offset=-90
    ]
    Type start : set#start [
      offset=-90
    ]
    Type end : set#end [
      offset=-90
    ]
  }

Thing astro:sun:stowing   "Offset -Test"     [geolocation="23.123456,14.123456,502", interval=300]{
  Channels:
    Type rangeEvent : set#event [
      offset=-180,
      earliest="19:40"
    ]
    Type rangeEvent : night#event [
      offset=-180
    ]
  }
Vielleicht hilft dir das weiter.

Edit: Du brauchst natürlich auch unterschiedliche Items ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

frankl
Beiträge: 5
Registriert: 22. Okt 2021 10:44
Answers: 0

Re: Astro Binding offset

Beitrag von frankl »

danke peter-pan ... so funzt es :)

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

Re: Astro Binding offset

Beitrag von udo1toni »

Entschuldigung, wenn ich da noch mal nachhake...

Die Anzeige von civilDusk hat nichts mit dem Trigger von civilDusk zu tun. Das heißt, Du verwendest den falschen Weg, auf civilDusk#end zu reagieren.

Korrekt funktioniert es mit dem Trigger Channel 'astro:sun:home:civilDusk#event' triggered END. Der Event Channel ist komplett unabhängig von der Anzeige, man kann den Offset frei setzen, Earliest und Latest ebenso.

Auf den Anzeige-Channel kannst Du nicht triggern, das geht nur mit dem Event Channel.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

frankl
Beiträge: 5
Registriert: 22. Okt 2021 10:44
Answers: 0

Re: Astro Binding offset

Beitrag von frankl »

danke udo1toni
könnte der Grund gewesen sein, warum nicht richtig geschaltet wurde :)

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

Re: Astro Binding offset

Beitrag von peter-pan »

..da hat Udo natürlich Recht.

Zum Triggern der Rules sind die "Trigger-Channels" (#event) zuständig, die brauchen auch kein Item in der Konfiguration.

Zur Anzeige der gewünschten Werte sind die "normalen Channels" gedacht. Dazu braucht es natürlich ein Item das diese Werte anzeigt.

Code: Alles auswählen

The Astro binding is used for calculating

    many DateTime and positional values for sun and moon.
    Radiation levels (direct, diffuse and total) of the sun during the day
Das sind dann normalerweise die Werte, die man in einer "Page" anzeigen kann.

Details hierzu findest du auch hier.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Astro Binding offset

Beitrag von udo1toni »

peter-pan hat geschrieben: 24. Okt 2021 01:17 Zum Triggern der Rules sind die "Trigger-Channels" (#event) zuständig, die brauchen auch kein Item in der Konfiguration.
Mehr noch... Die Event Channels können nicht mit einem Item verlinkt werden... ;) Was schlicht daran liegt, dass sie keinen Status besitzen.

Items halten den Status eines Channels oder geben Befehle an einen Channel weiter (oftmals beides...)
Ein Event Channel hat keinen Status und nimmt keine Befehle entgegen, ergo ist es sinnlos, ihn mit einem Item zu koppeln.

Es gäbe natürlich dennoch einen sinnvollen Anwendungsfall, nämlich, um ein Event ohne Umweg über Rules an ein anderes Binding zu schicken... Momentan ist das nicht möglich, man kann das nur über eine Rule lösen.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
xvs03
Beiträge: 11
Registriert: 28. Dez 2021 18:33
Answers: 0

Re: Astro Binding offset

Beitrag von xvs03 »

Hallo ich wollte auch mal eine Methode beisteuern, die ohne Scripting in OH 3.X ein Offset in das Astrobinding einsteuert.

Ich habe das Thing Lokale Sonnendaten gleich 2x angelegt (das blaue + Zeichen unten rechts). 1x für original Zeit, das zweite für die manipulierte Offset Zeit
Things_Sonnendaten.jpg
Nun das neu erstellte Thing anwählen in die Channels gehen.
Dann bitte genau schauen welchen Channel wir manipulieren wollen.
In unserem Fall möchte ich den Sonnenuntergang manipulieren und da die Channels:
1. Startzeit set#start (DateTime) um die manipulierte Zeit informativ angezeigt zu bekommen
2. Range Event set#event (Trigger) um etwas damit schalten zu können.

Wichtig: Dieser Channel rise#start kann keinerlei Items schalten oder irgendwas anderes, sondern ist nur rein informativ für Dich damit Du die Zeiten auf dem Schirm hast, die sich ja jeden Tag automatisch ändern.
Zum schalten brauchst Du rise#event !
Configure_Channel.jpg
Klicke auf Configure Channel, dort kann man die Verschiebung in Minuten eingeben.
Verschiebung.jpg
Nun kann man Rules mit den maniupulierten Channels anlegen, ohne eine Zeile Code.
Immer daran denken, dass es jetzt zwei Things mit den selben Channels gibt. Man neigt dazu das falsche auszuwählen. :D
Übrigens ihr müsst nicht immer so lang warten bis das XXX#event auslöst. Macht einfach das Offset so groß, dass es z.B. 5 Minuten vor der tatsächlichen Tageszeit ist und testet so den Offset.

Viel Spaß beim testen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten