Globale Werte festlegen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
thissiac
Beiträge: 18
Registriert: 9. Jan 2019 18:09
Answers: 0

Globale Werte festlegen

Beitrag von thissiac »

Viel lesen bring leider auch viel Verunsicherung :-(

Den Helligkeitswert außen verwende ich in mehreren Rules und definiere sie dort immer wieder.
Werte einer Variablen werden immer beim ausführen der Rule definiert. Das habe ich verstanden.

Wenn ich nun eine Rule anlege, z.B. Global-Rule und dort mit einem Cronjob die Helligkeit abfrage
und sie einer Variable zuweise, kann ich dann in den anderen Rules darauf zugreifen?

z.B.

var Helligkeit = Outdoor_Hue_Helligkeit (ist ein Item)

oder

If now.getHourofDay = 3 then Tageszeit=Nachmittag

Beim schreiben habe mich nicht exakt an die Syntax gehalten. Sollte auch nur verdeutlichen,
was ich gerne machen möchte. Geht das?

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

Re: Globale Werte festlegen

Beitrag von udo1toni »

Es gibt keine Global-Rule.

Es gibt aber sehr wohl globale Variablen, die Du an beliebiger Stelle innerhalb der gleichen Datei setzen kannst.

Allerdings verstehe ich nicht so ganz, worauf Du hinaus willst.
Der Helligkeitswert wird ja mit hoher Wahrscheinlichkeit in einem Item gespeichert sein.
Es ist unsinnig, mittels einer Rule zeitgesteuert den Inhalt eines Items in eine Variable zu übernehmen und in einer anderen Rule anschließend mit einem zwangsläufig inaktuellen Wert zu arbeiten.
Es ist etwas Anderes, den Wert zu Beginn einer Rule in eine Variable zu sichern, weil man mehrfach innerhalb der Rule auf den Wert zugreifen muss, eine Rule sollte typischerweise wesentlich weniger als eine Sekunde zur Abarbeitung benötigen, so dass der Wert in dieser Zeit nicht großartig schwanken wird, ja es kann sogar sein, dass der Wert fixiert sein muss, um sicherzustellen, dass er sich nicht im Verlauf der Rule ändert.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

thissiac
Beiträge: 18
Registriert: 9. Jan 2019 18:09
Answers: 0

Re: Globale Werte festlegen

Beitrag von thissiac »

Du hast natürlich Recht. Den Helligkeitswert kann ich jederzeit einfach so abrufen.

In meinem Fall ermittel ich den erst einmal. Am Haus habe ich 2 Hue-Bewegungsmelder, die aufgrund
der unterschiedlichen Himmelsrichtungen und Nachbarbebauung unterschiedliche Helligkeitswerte anzeigen.

Nun möchte ich den Mittelwert haben. Wert = (Wert1 + Wert2) / 2.
Ziel ist es dem Code zu reduzierung um nicht andauend die Formel eintragen zu müsse.

Gleiches gilt es die Tageszeiten festzulegen.

Wenn Uhrzeit = 3 Uhr, dann Tageszeit = nachmittag.

Einmal festlegen und in jeder Regel nutzen können.
Das war mein Ziel.

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

Re: Globale Werte festlegen

Beitrag von udo1toni »

Ah. Na ja, das Einfachste ist, ein Item anzulegen, wleches die mittlere Helligkeit enthält. Dazu braucht es aber keine Rule:

Code: Alles auswählen

Group:Number:AVG gLumen "Mittelwert [%.f1 Lumen]"
Number Lumen1 "Sensor 1  [%.f1 Lumen]" (gLumen)
Number Lumen2 "Sensor 2  [%.f1 Lumen]" (gLumen)
Für die Tageszeit bietet sich ebenfalls ein Item an, in dem Du die Tageszeit speicherst. Schau mal hier: https://community.openhab.org/t/design- ... -day/15407
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten