Hallo zusammen,
ich möchte gerne eine Rule mit einem Schalter auf der UI sichtbar ein und ausschalten können.
Hat jemand eine Idee wie ich dies textbasierend erstelle ??
Ich nutze Openhab 4.3.5 auf einem Raspi.
Vielen lieben Dank für Eure Ideen und Vorschläge im Voraus
mfg
madmike
Schaltbare Rule
- udo1toni
- Beiträge: 15438
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Schaltbare Rule
Grundsätzlich gibt es den betreffenden "Schalter" schon in der UI, und zwar wenn Du in die Rules gehst und dort den Pausenknopf drückst.
Ich gehe davon aus, dass Du diesen Schalter in der "Endanwender UI" nutzbar haben möchtest.
Dazu müsstest Du den entsprechenden API-Befehl über ein Item steuerbar machen.
Beispiel:
Das Item ruleMyRule_1 ist ein Switch Item, welches den Enabled-Schalter darstellt.
Die URL führt zur REST API von openHAB. Welche URL das exakt ist, kannst Du über den API Explorer ermitteln (MainUI->Adminstration->Entwickler Tools->API Explorer->rules->POST /rules/{ruleUID}/enable)
Einzutragen ist die UID der Rule, welche sich bei textbasierten Rules aus dem Dateinamen und der Position innerhalb der Datei ergibt, die kannst Du auch vorher über die MainUI unter Rules nachschauen. Damit Du die API ausprobieren kannst, musst Du den Knopf Try it out aktivieren
Der Authorization Bearer ist notwendig, wenn Du unter MainUI->Administration->Einstellungen->System Settings->API-Sicherheit->Show Advanced
Basic Authentication Erlauben abgeschaltet hast. Das ist auf jeden Fall zu empfehlen, hat halt den Nachteil, dass openHAB verlangt, dass Du Dich authentifizierst.
Den Bearer selbst erhältst Du z.B. über den API Explorer oder indem Du selbst einen Token generierst (MainUI->User->API-Token->Erstelle ein neues API Token).
Die Rule habe ich bei mir getestet
Ich gehe davon aus, dass Du diesen Schalter in der "Endanwender UI" nutzbar haben möchtest.
Dazu müsstest Du den entsprechenden API-Befehl über ein Item steuerbar machen.
Beispiel:
Code: Alles auswählen
rule "switch enabled state of rule 1"
when
Item ruleMyRule_1 changed
then
val strURL = "https://192.168.178.15:8443/rest/rules/rules-1/enable"
val strVal = if(newState == ON) "true" else "false"
val mapHeaders = newHashMap("Authorization" -> "Bearer <authorization key>")
sendHttpPostRequest(strURL, "text/plain", strVal,mapHeaders,3000)
endDie URL führt zur REST API von openHAB. Welche URL das exakt ist, kannst Du über den API Explorer ermitteln (MainUI->Adminstration->Entwickler Tools->API Explorer->rules->POST /rules/{ruleUID}/enable)
Einzutragen ist die UID der Rule, welche sich bei textbasierten Rules aus dem Dateinamen und der Position innerhalb der Datei ergibt, die kannst Du auch vorher über die MainUI unter Rules nachschauen. Damit Du die API ausprobieren kannst, musst Du den Knopf Try it out aktivieren
Der Authorization Bearer ist notwendig, wenn Du unter MainUI->Administration->Einstellungen->System Settings->API-Sicherheit->Show Advanced
Basic Authentication Erlauben abgeschaltet hast. Das ist auf jeden Fall zu empfehlen, hat halt den Nachteil, dass openHAB verlangt, dass Du Dich authentifizierst.
Den Bearer selbst erhältst Du z.B. über den API Explorer oder indem Du selbst einen Token generierst (MainUI->User->API-Token->Erstelle ein neues API Token).
Die Rule habe ich bei mir getestet
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)
- PeterA
- Beiträge: 1107
- Registriert: 8. Feb 2019 12:12
Re: Schaltbare Rule
ooooder man baut einen Schalter ein der die Rule abbricht:
Code: Alles auswählen
then
// Prüfen, ob der Schalter nicht ON also OFF ist
if (Mein_Rule_Schalter.state != ON) {
logInfo("Mein Schalter ist OFF", "Regel wird abgebochen.")
return; // Wenn ausgeschaltet, dann Regel abbrechen und nichts machen
}- OpenHab
#PWRUP
#PWRUP
-
madmike
- Beiträge: 284
- Registriert: 15. Apr 2018 17:09
Re: Schaltbare Rule
Hallo zusammen,
beide Ideen finde ich super vielen Dank für die schnelle Antwort.
Werde beide ausprobieren und mich dann melden
Einen lieben Gruß aus dem Pott
madmike
beide Ideen finde ich super vielen Dank für die schnelle Antwort.
Werde beide ausprobieren und mich dann melden
Einen lieben Gruß aus dem Pott
madmike