Seite 1 von 2

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

Verfasst: 19. Mär 2020 21:21
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

Kleines Rule mit zwei Switches und schon habe ich ein Problem

Verfasst: 19. Mär 2020 21:26
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

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

Verfasst: 19. Mär 2020 21:37
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'

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

Verfasst: 19. Mär 2020 21:39
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

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

Verfasst: 19. Mär 2020 21:58
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

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

Verfasst: 19. Mär 2020 22:01
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

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

Verfasst: 19. Mär 2020 22:04
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'

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

Verfasst: 19. Mär 2020 22:05
von Boris099
6,2 ist genau die when Bedingung

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

Verfasst: 19. Mär 2020 22:06
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

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

Verfasst: 19. Mär 2020 22:14
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