Wie komme ich in einer Rule an OPENHAB_CONF?
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Wie komme ich in einer Rule an OPENHAB_CONF?
Moin,
um in einer Rule die Environment-Variable OPENHAB_CONF zu nutzen, wollte ich sie mit System.getenv() lesen. Geht aber nicht, das System-Objekt ist nicht da oder zumindest in der Rule-DSL verschollen.
Wie bekomme ich das nun hin? Muss ich mir tatsächlich was mit den Exec-Binding basteln, das ich bisher nicht benötigt habe?
Danke und Gruß
um in einer Rule die Environment-Variable OPENHAB_CONF zu nutzen, wollte ich sie mit System.getenv() lesen. Geht aber nicht, das System-Objekt ist nicht da oder zumindest in der Rule-DSL verschollen.
Wie bekomme ich das nun hin? Muss ich mir tatsächlich was mit den Exec-Binding basteln, das ich bisher nicht benötigt habe?
Danke und Gruß
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Warum sollte man das tun wollen? Im Allgemeinen musst Du keine absoluten Pfade zu openHAB-Dateien angeben, mal abgesehen davon, dass Du auf die Dateien auch nicht aus Rules heraus zugreifen solltest. Entsprechend ist es auch nicht vorgesehen, die Bash-Variable zu verwenden.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Weil ich Dateien auslesen will, die ich zusätzlich dort ablege, praktischerweise deswegen, weil ich sie eh über das Openhab-Samba-Share dort im Zugriff habe.Warum sollte man das tun wollen?
Und wenn ich die Frage ohne OPENHAB_CONF gestellt hätte, sondern nur: "Wie lese ich aus einer Rule heraus Environment-Variablen?", was wäre dann die Antwort gewesen?
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Dein Vorhaben wird nicht ohne externe Scripte realisierbar sein, jedenfalls ist mir dazu kein Weg bekannt. Die Environment Variablen sind außerhalb openHAB, diese Information steht schlicht nicht zur Verfügung.
Um mit einem beliebten Vergleich zu sprechen: Man wird auhc kein Dreirad nutzen, um einen Schiffscontainer zu transprtieren. Die Rules DSL kann vieles, aber sie sit nicht für alle Dinge gleichermaßen geeignet.
Um mit einem beliebten Vergleich zu sprechen: Man wird auhc kein Dreirad nutzen, um einen Schiffscontainer zu transprtieren. Die Rules DSL kann vieles, aber sie sit nicht für alle Dinge gleichermaßen geeignet.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Nun gut... muss ich es eben anders machen.
Das Argument nachvollziehen kann ich nicht. java.util.Arrays kann ich in OH einbinden und nutzen, java.lang.System und System hingegen nicht? An manchen Stellen tue ich mich durchaus schwer mit den Einschränkungen bzw. möglichen Überlegungen der Entwickler, die zu den Einschränkungen geführt haben.
Das Argument nachvollziehen kann ich nicht. java.util.Arrays kann ich in OH einbinden und nutzen, java.lang.System und System hingegen nicht? An manchen Stellen tue ich mich durchaus schwer mit den Einschränkungen bzw. möglichen Überlegungen der Entwickler, die zu den Einschränkungen geführt haben.
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
- udo1toni
- Beiträge: 15248
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Hast Du denn mal versucht, java.lang.System zu importiern?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Yep. "java" in
wird sowohl unter Debian als auch unter openhabian unterkringelt mit der Meldung
Code: Alles auswählen
import java.lang.System
Code: Alles auswählen
no viable alternative at input 'System'
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Ich weiss zwar nicht, ob dir das weiterhilft, aber probiere einfach mal
dann sollte die Fehlermeldung eigentlich nicht mehr kommen.Falls das klappt, würde mich interessieren, wie du dann weiter gemacht hast.
Ich habe leider keine Ahnung von dem Ganzen, hab's einfach mal per "trial and error" probiert und diesen Import in einer Rule angelegt, basierend auf dieser Webseite
Code: Alles auswählen
import java.lang.getenv
Ich habe leider keine Ahnung von dem Ganzen, hab's einfach mal per "trial and error" probiert und diesen Import in einer Rule angelegt, basierend auf dieser Webseite
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 183
- Registriert: 20. Aug 2019 08:37
- Wohnort: Aachen
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Wie nicht anders zu erwarten:
Von welcher Web-Site sprichst du?
Code: Alles auswählen
java.lang.getenv cannot be resolved to a type.
Proxmox mit OH 4.2 und HABApp 24 im LXC-Container
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Wie komme ich in einer Rule an OPENHAB_CONF?
Sorry, ich meinte diese Webseite.
Also ich habe diesen Import in eine Rule eingebaut:
Als Ergebnis sagt mir der Logger:
Wenn ich das mit deinem Import mache:
Sagt der Logger:
Wie gesagt, ich habe den Import einfach vor die Regel gesetzt.
Also ich habe diesen Import in eine Rule eingebaut:
Code: Alles auswählen
import java.lang.getenv
rule " Spielereien mit Syntax"
when
Item DummySpielereien changed to ON
then
{
val max = 10
var i = 0
while (i < max) {
logInfo("Spielereien", "Hi there")
i = i + 1
}
}
logInfo("Spielereien", "Ende")
end
Code: Alles auswählen
2019-12-05 16:20:50.329 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model '_spielereien.rules'
Code: Alles auswählen
import java.lang.System
rule " Spielereien mit Syntax"
when
Item DummySpielereien changed to ON
then
{
val max = 10
var i = 0
while (i < max) {
logInfo("Spielereien", "Hi there")
i = i + 1
}
}
logInfo("Spielereien", "Ende")
end
Code: Alles auswählen
2019-12-05 16:20:50.329 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model '_spielereien.rules'
2019-12-05 16:26:22.109 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model '_spielereien.rules' has errors, therefore ignoring it: [2,8]: no viable alternative at input 'System'
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian