Regel übersetzen von DSL nach Blockly

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Regel übersetzen von DSL nach Blockly

Beitrag von scotty »

Liebe Forengemeinde,

mit der Umsetzung meiner Regeln aus openHAB 2.5 habe ich gerade erst begonnen. Und schon die erste DSL-Zeile

Code: Alles auswählen

when
    Item Flag_Abendlicht received command "ON"
then
bereitet mir Probleme. Kann mir jemand mitteilen, wie dieser Code in Blockly zusammengestellt werden muss?

Vielen Dank im Voraus.
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

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

Re: Regel übersetzen von DSL nach Blockly

Beitrag von udo1toni »

Ist das Item Flag_Abendlicht ein String Item? Ansonsten dürfen da schon mal keine Anführungszeichen stehen... :P
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Regel übersetzen von DSL nach Blockly

Beitrag von scotty »

Das Item unter 0h3 ist vom Type "switch". Ich finde in dem Baukastensystem von oh 3.01 den Begriff "received" nicht.

Dieser Versuch ist jedenfalls gescheitert:
if (itemRegistry.getItem('FlagAbendlicht').getState() == 'ON') {
events.sendCommand('Treppe', 'ON');
events.postUpdate('FlagAbendlicht', 'ON');
}
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

rbeudel
Beiträge: 258
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Regel übersetzen von DSL nach Blockly

Beitrag von rbeudel »

Wenn das die erste Zeile ist gehört die doch gar nicht in den Blockly Teil sondern ist der trigger für den when Teil der rule?
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Regel übersetzen von DSL nach Blockly

Beitrag von scotty »

Um die Angelegenheit zu vereinfachen hier mal die komplette Rules, so wie sie unter oh 2.5 funktioniert. Wobei es sich bei dem Item "Flag_Abendlicht" um einen "Dummy" handelt.

Gruß
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Regel übersetzen von DSL nach Blockly

Beitrag von scotty »

Teil 2 (sorry, hatte den Code vergessen)

Code: Alles auswählen

rule "Abendbeleuchtung einschalten"
when
    Item Flag_Abendlicht received command "ON"
then
   	logInfo("Flag_Abendlicht", "Abendbeleuchtung wird einschaltet")
    TischlampeSwitch.sendCommand(ON)
    TreppeSwitch.sendCommand(ON)
    FensterlampeRelayOutput.sendCommand(ON)         
    lfernseherWhiteBrightness.sendCommand(ON)
    lKugelleuchteWhiteBrightness.sendCommand(ON)
    Thread::sleep(500)    
    Flag_Abendlicht.postUpdate("ON")
end
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

rbeudel
Beiträge: 258
Registriert: 6. Jun 2019 11:25
Answers: 1

Re: Regel übersetzen von DSL nach Blockly

Beitrag von rbeudel »

Erst eine rule erstellen:
Screenshot (12).jpg
In den when Bereich Dein
Item Flag_Abendlicht received command "ON"
Im Then Bereich ein script mit Blockly erstellen.
Das geht dann mit
logInfo("Flag_Abendlicht", "Abendbeleuchtung wird einschaltet")
los. Dafür gibt es einen Blockly Baustein.
Dann die anderen Befehle einfach untereinander. Für den Timer gibt es keinen Blockly Baustein, deshalb kann das postupdate einen falschen Wert anzeigen. Das Problem habe ich auch gerade.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Viele Grüße,
Ralf


Debmatic und Openhab in Proxmox VM debian x86_64

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Regel übersetzen von DSL nach Blockly

Beitrag von scotty »

Danke erst einmal, werde ich später testen!
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Regel übersetzen von DSL nach Blockly

Beitrag von scotty »

OK - ich denke, dass funktioniert erst einmal so:

Code: Alles auswählen

var logger = Java.type('org.slf4j.LoggerFactory').getLogger('org.openhab.rule.' + ctx.ruleUID);


logger.info('Die Abendbeleuchtung wurde eingeschaltet.');
events.sendCommand('Tischleuchte', 'ON');
events.sendCommand('TVLeuchte_Helligkeit', 'ON');
events.sendCommand('Kugelleuchte_Helligkeit', 'ON');
events.sendCommand('Treppe', 'ON');
events.sendCommand('Fensterleuchte_Betrieb', 'ON');
events.postUpdate('FlagAbendlicht', 'ON');
Nun möchte ich innerhalb dieser Regel noch "Value" von TVLeuchte_Helligkeit bzw. Kugelleuchte_Helligkeit auf "40" ändern. Kann mir jemand mitteilen, wie der entsprechende Befehl lautet?

Gruß
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Benutzeravatar
scotty
Beiträge: 676
Registriert: 28. Apr 2020 04:44
Answers: 0

Re: Regel übersetzen von DSL nach Blockly

Beitrag von scotty »

Ist es denn wirklich so, dass ich der erste und vielleicht sogar der einzigste mit diesem Problem bin?

Ich möchte in der Openhab 3.0-Rules einen Befehl so ändern, dass der Wert "40" für die Helligkeit eingestellt wird. Es können aber auch 2 Befehle dafür verwendet werden (also zuerst öffnen und anschließend den Wert einstellen).

Hier noch einmal der betreffende Befehl:

Code: Alles auswählen

events.sendCommand('TVLeuchte_Helligkeit', 'ON');


Viele Grüße
OH 3.4.5 im Docker auf Synology DS918+ mit USV, Reolink-RLC-511WA, Philips Hue, AVM Fritz!Box 6591C, Alexa, Logitech Harmony und diversen Shelly's

Antworten