[SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

[SOLVED] Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Boris099 »

Ich bin gerade dabei ein kleines Rule zu erstellen.
Meine Coding Kenntnisse sind gering:-)
und schon bei diesem Ding habe ich Problem.

Wie greife ich denn den Status eines Switchs hier "E_Touch10_3" ab, um damit einen anderen Switch zu schalten?
Ich wollte eigentlich gleich mit einem IF E_Touch10_3.state == ON starten, aber dann sagt das log expecting when und nicht IF.
Wenn doch alles so einfach wäre...

Könnt ihr mir hier auf die Sprünge helfen

Code: Alles auswählen

import java.util.List																		
var Timer SireneTimer2 = null																

rule "Alarm Manuell"
when 
	E_Touch10_3.state == ON
then                                                              								
    if(SireneTimer2 === null) {                                                                 
        Steckdose54.sendCommand(ON)      	                                                    
        SireneTimer2 = createTimer(now.plusSeconds(60), [ |                                 	
        Steckdose54.sendCommand(OFF)														
        SireneTimer2 = null																	
        ] )																																											
    }																							
end
Zuletzt geändert von Boris099 am 19. Mär 2020 22:35, insgesamt 1-mal geändert.
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Darkwin101 »

Der When Teil muss immer ein Ereignis sein du fragst aber einen Status ab also changed to on wäre hier eventuell richtig


Gesendet von iPad mit Tapatalk

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Boris099 »

Nö das will er auch nicht

Configuration model 'AlarmManuell.rules' has errors, therefore ignoring it: [6,2]: no viable alternative at input 'E_Touch10_3'
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Darkwin101 »

Was hast du denn geschrieben das muss auch der Syntax entsprechen also when Item xy changed to ON


Gesendet von iPad mit Tapatalk

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Boris099 »

Ja habe ich doch gemacht, aber das will er nicht
und wie bekomme ich das wieder aus wenn ich vorzeitig den Alarm deaktivieren will?

Code: Alles auswählen

2020-03-19 21:51:47.668 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'AlarmManuell.rules' has errors, therefore ignoring it: [6,2]: no viable alternative at input 'E_Touch10_3'

[17,1]: missing '}' at 'end'

Code: Alles auswählen

import java.util.List																			
var Timer SireneTimer2 = null														

rule "Alarm Manuell"
when 
	E_Touch10_3.state changed to ON
then                                                              								
if(E_Touch10_3.state == ON) {
    	if(SireneTimer2 === null) {                                                                
    	logInfo("Alarm Manuell","Alarm und LED ON, Rule Ende!")									
        Steckdose54.sendCommand(ON)      	                                                 
        SireneTimer2 = createTimer(now.plusSeconds(60), [ |                                 	
            Steckdose54.sendCommand(OFF)													
            SireneTimer2 = null																
        ] )																																											
    }																						
end
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Darkwin101 »

Nicht so sondern so wie ich geschrieben habe Item E_Touch10_3 changed to ON

Code: Alles auswählen

rule "Alarm Manuell"
when 
	Item E_Touch10_3 changed to ON
	

Gesendet von iPad mit Tapatalk

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Boris099 »

Der gleich Fehler im Log

Code: Alles auswählen

2020-03-19 22:02:23.501 [WARN ] [el.core.internal.ModelRepositoryImpl] - Configuration model 'AlarmManuell.rules' has errors, therefore ignoring it: [6,2]: no viable alternative at input '.'

[17,1]: missing '}' at 'end'
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Boris099 »

6,2 ist genau die when Bedingung
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Darkwin101 »

Du hast eine Klammer nicht geschlossen in der Vorletzten Zeile mach bitte 2 Klammern ich habe meinen Post oben mal in den Code für 6.2 angegeben da ich nun am Laptop sitze

Edit:

Code: Alles auswählen

import java.util.List																			
var Timer SireneTimer2 = null														

rule "Alarm Manuell"
when 
	Item E_Touch10_3 changed to ON
then                                                              								
if(E_Touch10_3.state == ON) {
    	if(SireneTimer2 === null) {                                                                
    	logInfo("Alarm Manuell","Alarm und LED ON, Rule Ende!")									
        Steckdose54.sendCommand(ON)      	                                                 
        SireneTimer2 = createTimer(now.plusSeconds(60), [ |                                 	
            Steckdose54.sendCommand(OFF)													
            SireneTimer2 = null																
        ] )																																											
    }}																						
end

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Kleines Rule mit zwei Switches und schon habe ich ein Problem

Beitrag von Darkwin101 »

Im Then teil benötigst du die Abfrage if(E_Touch10_3.state == ON) nicht da die Regel sowieso nur ausgeführt wird wenn E_Touch10_3 On ist

Antworten