OH 3 - Aktivieren / Deaktivieren von Rules mit Javascript

Hier bitte alles rein was Off-topic ist.

Moderatoren: Cyrelian, seppy

Antworten
der_micha
Beiträge: 15
Registriert: 12. Mai 2020 08:06

OH 3 - Aktivieren / Deaktivieren von Rules mit Javascript

Beitrag von der_micha »

Hallo zusammen,

kann mir bitte jemand auf die Sprünge helfen wie ich das Ein- und Ausschalten von Rules in den Javascript-Teil bekomme. Über die UI ist das ja ganz easy, ich hätte das aber gerne in der If / Else Schleife.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      thingUID: deconz:switch:00212E04E250:04cf8cdf3c7da1f0010012
      event: "1002"
      channelUID: deconz:switch:00212E04E250:04cf8cdf3c7da1f0010012:buttonevent
    type: core.ChannelEventTrigger
conditions: []
actions:
  - inputs: {}
    id: "3"
    configuration:
      type: application/javascript
      script: >
        if (itemRegistry.getItem('InnogyAussenleuchteAnbau_Dimmer').getState()
        == 'OFF') {
          events.sendCommand('InnogyAussenleuchteAnbau_Dimmer', 'ON');
        } else {
          events.sendCommand('InnogyAussenleuchteAnbau_Dimmer', 'OFF');
        }
    type: script.ScriptAction
  - id: "2"
    configuration:
      enable: "false"
      ruleUIDs:
        - Bewegungsmelder_Anbau_Aus
    type: core.RuleEnablementAction
Vielen Dank!

Update:
Ich habe das jetzt über ein Hilfs-Item realisiert, funktioniert auch - trotzdem würde ich gerne wissen wie das in Javascript gemacht wird. ;)

ThomasW
Beiträge: 33
Registriert: 9. Jan 2021 16:12
Answers: 1

Re: OH 3 - Aktivieren / Deaktivieren von Rules mit Javascript

Beitrag von ThomasW »

Hey,

ich habe dazu folgendes gefunden so sollte es gehen.

Code: Alles auswählen

var FrameworkUtil = Java.type("org.osgi.framework.FrameworkUtil");
var _bundle = FrameworkUtil.getBundle(scriptExtension.class);
var bundle_context = _bundle.getBundleContext()
var classname = "org.openhab.core.automation.RuleManager"
var RuleManager_Ref = bundle_context.getServiceReference(classname);
var RuleManager = bundle_context.getService(RuleManager_Ref);

var thisRule = rules.getAll().stream().filter(function(i){ return i.name == "Rule Name" }).findFirst().get(); //Hier Wird die Rule anhand des Namens gesucht
//logger.info("This rules UID is " + thisRule.getUID());

// Disable a rule
RuleManager.setEnabled(thisRule.getUID(), false);

// Enable a rule
RuleManager.setEnabled(thisRule.getUID(), true);
gruß
Thomas
OH3 auf RPI4,
Heizungssteuerung: Fritz DECT,
Zigbee: Conbee2 über Phoscon-GW: Aqara Opple Schalter, Aqara Temperatursensoren, Aqara Fenstersensoren, Aqara Aktoren, IKEA Lichter
Astro Binding
DWDUnwetter Binding
OpenWeatherMap Binding
FritzBox TR 064 Binding
iRobot Binding
Telegramm Binding für Benachrichtigungen und Steuerung von unterwegs
Rolladensteuerung: Rademacher DuoFern über HTTP Binding

der_micha
Beiträge: 15
Registriert: 12. Mai 2020 08:06

Re: OH 3 - Aktivieren / Deaktivieren von Rules mit Javascript

Beitrag von der_micha »

Hi Thomas,

vielen Dank, genau danach habe ich gesucht! Funktioniert einwandfrei, das hätte ich so nicht hinbekommen...

Ich wünsche noch ein schönes Restwochenende!!!

Antworten