Rule erzeugt bei Ausführung weitere Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
macho.elf
Beiträge: 2
Registriert: 19. Feb 2022 14:06
Answers: 0

Rule erzeugt bei Ausführung weitere Rule

Beitrag von macho.elf »

Hallo Zusammen,

kurze Zusammenfassung. Bin jetzt von OH 3 auf OH 4 umgestiegen und somit musste einiges nachgezogen werden.
Ich habe eine neue Regel für meine Windberechnung aufgesetzt, die auch macht was sie soll.

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      itemName: Wind_ms
    type: core.ItemStateUpdateTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/javascript
      script: |
        rules.JSRule({
            name: "Convert Wind Speed",
            description: "Converts wind speed from km/s to km/h",
            triggers: [
                triggers.ItemStateChangeTrigger("Wind_ms")
            ],
            execute: (event) => {
                var Wind_ms = items.getItem("Wind_ms").state;
                if (Wind_ms !== "NULL" && Wind_ms !== "UNDEF") {
                    var Wind_kmh = parseFloat(Wind_ms) * 3.6;
                    items.getItem("Wind_kmh").sendCommand(Wind_kmh.toFixed(2));
                }
            }
        });
    type: script.ScriptAction
Jetzt habe ich allerdings gesehen, dass es mir dadurch schieinbar temporär diese Rule immer wieder bei Ausführung unter Rules neu anlegt?!
Screenshot 2025-01-15 082342.png
Wenn ich die Rule anhalte, sind auch die "erzeugte" Rules wieder weg?!


Achso...
openHAB 4.3.2 auf Raspberry Pi 4
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Harka
Beiträge: 446
Registriert: 30. Apr 2021 13:13
Answers: 16

Re: Rule erzeugt bei Ausführung weitere Rule

Beitrag von Harka »

Moin,
nur geraten!
Du nutzt ein Script, welches für dateibasierte Regeln gedacht ist über die UI. Da ist einiges doppelt gemoppelt.
Kürze das eigentliche Script mal bitte etwas ein

Code: Alles auswählen

var Wind_ms = items.getItem("Wind_ms").state;
if (Wind_ms !== "NULL" && Wind_ms !== "UNDEF") {
	var Wind_kmh = parseFloat(Wind_ms) * 3.6;
	items.getItem("Wind_kmh").sendCommand(Wind_kmh.toFixed(2));
}
Vermutung: jedes mal, wenn Deine UI-Rule gestartet wird, erstellst Du mit rules.JSRule(...) im RAM oder Temp-Ordner eine neue Rule. Damit der ID einmalig ist wird jeweils noch der Name ergänzt.

macho.elf
Beiträge: 2
Registriert: 19. Feb 2022 14:06
Answers: 0

Re: Rule erzeugt bei Ausführung weitere Rule

Beitrag von macho.elf »

Ja jetzt geht es! Danke

Antworten