Hi, Michal
No, I do not forget to copy the file. Previously, this rules is normally worked more than a 1.5 year, but the last few days has stopped working.
Maybe this is due to the work of OR Designer in the last days?
Rules:
package org.openremote.controller.protocol
global org.openremote.controller.statuscache.CommandFacade execute;
global org.openremote.controller.statuscache.SwitchFacade switches;
global org.openremote.controller.statuscache.LevelFacade levels;
import org.openremote.controller.protocol.*;
import org.openremote.controller.model.event.*;
import java.lang.Float;
import java.sql.Timestamp;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import org.openremote.controller.utils.Logger;
import org.openremote.controller.Constants;
import java.io.*;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
rule “Send Mail Test1”
when
Switch ( source == “Send Mail Test1 Sensor”, value == “on”)
then
execute.command (“Send Mail Test1 OFF”);
final String username = “ds214playopenremote@gmail.com”;
final String password = “password”;
Properties props = new Properties();
props.put(“mail.smtp.host”, “smtp.gmail.com”);
props.put(“mail.smtp.socketFactory.port”, “465”);
props.put(“mail.smtp.socketFactory.class”,“javax.net.ssl.SSLSocketFactory”);
props.put(“mail.smtp.auth”, “true”);
props.put(“mail.smtp.port”, “465”);
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(“ds214playopenremote@gmail.com”));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(“tehnoinstyle@gmail.com”));
message.setSubject(“server”);
message.setText(“test1”);
Transport.send(message);
System.out.println(“Mail test1 sent”);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
end
rule “Send Mail Test2”
when
Switch ( source == “Send Mail Test2 Sensor”, value == “on”)
then
execute.command (“Send Mail Test2 OFF”);
final String username = “ds214playopenremote@gmail.com”;
final String password = “password”;
Properties props = new Properties();
props.put(“mail.smtp.host”, “smtp.gmail.com”);
props.put(“mail.smtp.socketFactory.port”, “465”);
props.put(“mail.smtp.socketFactory.class”,“javax.net.ssl.SSLSocketFactory”);
props.put(“mail.smtp.auth”, “true”);
props.put(“mail.smtp.port”, “465”);
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(“ds214playopenremote@gmail.com”));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(“tehnoinstyle@gmail.com”));
message.setSubject(“server”);
message.setText(“test2”);
Transport.send(message);
System.out.println(“Mail test2 sent”);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
end
rule “mail test1”
when
Event(source==“DateTime isDay.Sensor”, value==“on”)
then
execute.command(“Send Mail Test1 ON”);
end
rule “mail test2”
when
Event(source==“DateTime isDay.Sensor”, value==“off”)
then
execute.command(“Send Mail Test2 ON”);
end
``
Logs:
DEBUG 2016-10-09 06:50:24,734 (Drools): rule “mail test1” // (package org.openremote.controller.protocol)
Declarations
LHS objects(antecedents)
Class: “CustomState”
Fields:
Event Name: “DateTime isDay.Sensor”
Event Value: “on”
DEBUG 2016-10-09 06:50:24,908 (Drools): rule “Send Mail Test1” // (package org.openremote.controller.protocol)
Declarations
LHS objects(antecedents)
Class: “Switch”
Fields:
Event Name: “Send Mail Test1 Sensor”
Event Value: “on”
ERROR 2016-10-09 06:50:24,967 (Drools): Error in executing rule : Send Mail Test1 Sensor:Could not initialize class javax.crypto.JceSecurityManager
Event Switch Event (ID = 329280, Source = ‘Send Mail Test1 Sensor’, Switch Value = ‘on’, Switch State = ON) not processed!
java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.JceSecurityManager
at javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2587)
at javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2611)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:548)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:527)
at sun.security.ssl.CipherSuite.isAvailable(CipherSuite.java:194)
at sun.security.ssl.SSLContextImpl.getApplicableCipherSuiteList(SSLContextImpl.java:346)
at sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList(SSLContextImpl.java:304)
at sun.security.ssl.SSLSocketImpl.init(SSLSocketImpl.java:626)
at sun.security.ssl.SSLSocketImpl.(SSLSocketImpl.java:567)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:110)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:364)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:217)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2084)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:712)
at javax.mail.Service.connect(Service.java:388)
at javax.mail.Service.connect(Service.java:246)
at javax.mail.Service.connect(Service.java:195)
at javax.mail.Transport.send0(Transport.java:254)
at javax.mail.Transport.send(Transport.java:124)
at org.openremote.controller.protocol.Rule_Send_Mail_Test1767942078.defaultConsequence(Rule_Send_Mail_Test1767942078.java:33)
at org.openremote.controller.protocol.Rule_Send_Mail_Test1767942078DefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
at org.openremote.controller.protocol.Rule_Send_Mail_Test1767942078DefaultConsequenceInvoker.evaluate(Unknown Source)
at org.drools.core.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1089)
at org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:121)
at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:74)
at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1007)
at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1350)
at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
at org.openremote.controller.statuscache.rules.RuleEngine.push(RuleEngine.java:203)
at org.openremote.controller.statuscache.EventProcessorChain.push(EventProcessorChain.java:196)
at org.openremote.controller.statuscache.StatusCache.update(StatusCache.java:288)
at org.openremote.controller.model.sensor.Sensor.update(Sensor.java:360)
at org.openremote.controller.model.sensor.Sensor$DeviceReader.run(Sensor.java:648)
at java.lang.Thread.run(Thread.java:745)
DEBUG 2016-10-09 18:02:26,521 (Drools): rule “mail test2” // (package org.openremote.controller.protocol)
Declarations
LHS objects(antecedents)
Class: “CustomState”
Fields:
Event Name: “DateTime isDay.Sensor”
Event Value: “off”
DEBUG 2016-10-09 18:02:26,931 (Drools): rule “Send Mail Test2” // (package org.openremote.controller.protocol)
Declarations
LHS objects(antecedents)
Class: “Switch”
Fields:
Event Name: “Send Mail Test2 Sensor”
Event Value: “on”
ERROR 2016-10-09 18:02:27,048 (Drools): Error in executing rule : Send Mail Test2 Sensor:Could not initialize class javax.crypto.JceSecurityManager
Event Switch Event (ID = 329286, Source = ‘Send Mail Test2 Sensor’, Switch Value = ‘on’, Switch State = ON) not processed!
java.lang.NoClassDefFoundError: Could not initialize class javax.crypto.JceSecurityManager
at javax.crypto.Cipher.getConfiguredPermission(Cipher.java:2587)
at javax.crypto.Cipher.getMaxAllowedKeyLength(Cipher.java:2611)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:548)
at sun.security.ssl.CipherSuite$BulkCipher.isAvailable(CipherSuite.java:527)
at sun.security.ssl.CipherSuite.isAvailable(CipherSuite.java:194)
at sun.security.ssl.SSLContextImpl.getApplicableCipherSuiteList(SSLContextImpl.java:346)
at sun.security.ssl.SSLContextImpl.getDefaultCipherSuiteList(SSLContextImpl.java:304)
at sun.security.ssl.SSLSocketImpl.init(SSLSocketImpl.java:626)
at sun.security.ssl.SSLSocketImpl.(SSLSocketImpl.java:567)
at sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:110)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:364)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:217)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2084)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:712)
at javax.mail.Service.connect(Service.java:388)
at javax.mail.Service.connect(Service.java:246)
at javax.mail.Service.connect(Service.java:195)
at javax.mail.Transport.send0(Transport.java:254)
at javax.mail.Transport.send(Transport.java:124)
at org.openremote.controller.protocol.Rule_Send_Mail_Test2379815741.defaultConsequence(Rule_Send_Mail_Test2379815741.java:33)
at org.openremote.controller.protocol.Rule_Send_Mail_Test2379815741DefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
at org.openremote.controller.protocol.Rule_Send_Mail_Test2379815741DefaultConsequenceInvoker.evaluate(Unknown Source)
at org.drools.core.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1089)
at org.drools.core.phreak.RuleExecutor.fire(RuleExecutor.java:121)
at org.drools.core.phreak.RuleExecutor.evaluateNetworkAndFire(RuleExecutor.java:74)
at org.drools.core.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1007)
at org.drools.core.common.DefaultAgenda.fireLoop(DefaultAgenda.java:1350)
at org.drools.core.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1288)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.internalFireAllRules(StatefulKnowledgeSessionImpl.java:1306)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1297)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:1278)
at org.openremote.controller.statuscache.rules.RuleEngine.push(RuleEngine.java:203)
at org.openremote.controller.statuscache.EventProcessorChain.push(EventProcessorChain.java:196)
at org.openremote.controller.statuscache.StatusCache.update(StatusCache.java:288)
at org.openremote.controller.model.sensor.Sensor.update(Sensor.java:360)
at org.openremote.controller.model.sensor.Sensor$DeviceReader.run(Sensor.java:648)
at java.lang.Thread.run(Thread.java:745)
``