diff --git a/antifurtoMicroservizio/src/code/Antifurto.java b/antifurtoMicroservizio/src/code/Antifurto.java
index c6ab2a34840ae351866f95e325df9ee3fc1e2faa..206a5a2c82faddb409608b2e1faf1078816f5180 100644
--- a/antifurtoMicroservizio/src/code/Antifurto.java
+++ b/antifurtoMicroservizio/src/code/Antifurto.java
@@ -100,7 +100,7 @@ public class Antifurto {
 
 	}
 
-	public void startClient(Esecutore esec, Publisher publisher) throws MqttException {
+	public void startClient(Esecutore esec, Publisher publisher) throws MqttException, JSONException {
 		String caFilePath = "";
 		String clientCrtFilePath = "";
 		String clientKeyFilePath = "";
@@ -130,12 +130,15 @@ public class Antifurto {
 			e.printStackTrace();
 		}
 
-		mqttClient.setCallback(new SubscribeCallback(this, publisher, esec, automa));
+		SubscribeCallback subCall = new SubscribeCallback(this, publisher, esec, automa);
+		mqttClient.setCallback(subCall);
 
 		mqttClient.connect(options);
 
 		for(String t: topicsSub)
 			addTopicToSubscribe(t);
+		
+		subCall.sendOutAntifurto();
 	}
 
 	// sottoscrive il topic passato come parametro
diff --git a/antifurtoMicroservizio/src/code/Esecutore.java b/antifurtoMicroservizio/src/code/Esecutore.java
index 9d5ac4001f33ae5059db22015e32414e1a60c510..77fc65c7d40ff75ee25e8aac150659118843100d 100644
--- a/antifurtoMicroservizio/src/code/Esecutore.java
+++ b/antifurtoMicroservizio/src/code/Esecutore.java
@@ -16,6 +16,7 @@ public class Esecutore extends Thread {
 	private Automa automa;
 	private Antifurto antifurto;
 	private LocalDateTime tempoAllarme; //valorizzato solo quando l'allarme sta suonando. Contiene l'ora in cui l'allarme ha iniziato a suonare 
+	private static boolean changedSoglia = false;
 	
 	public Esecutore(Publisher publisher, MyQueue<Integer> codaVal, Automa automa, Antifurto antifurto) throws JSONException, IOException {
 		this.codaVal = codaVal;
@@ -58,14 +59,17 @@ public class Esecutore extends Thread {
 					
 					JSONObject statoJson = new JSONObject(Helper.leggiFile(Automa.FILE_STATO));
 					statoJson.put("valore", valore);
-					if(valore >= soglia && (!automa.allarme()) && delta>0) {	
+					if(valore >= soglia && (!automa.allarme()) && (delta>0 || changedSoglia)) { // DA FARE: controlla se e' corretto: ho aggiunto un booleano che dice se la soglia e' appena stata settata. 
+																								// Questo per mandare il messaggio di accensione della luce dell'out del suono se si cambia la soglia abbassandola 
+																								// e facendo in modo che dopo la modifica della soglia si abbia subito valore>soglia	
 						publisher.aggiungiComando("to/"+Antifurto.getMqttTree()+"/gpio/"+antifurto.getNomeOutputSuono(), "{cmd:1}");
 						tempoAllarme = LocalDateTime.now();
 						statoJson.put("tempoAllarme",tempoAllarme.toString());
+						changedSoglia = false;
 					}
 					else {
 						if(automa.allarme()) {
-							LocalDateTime tempoAttuale = LocalDateTime.now();
+							LocalDateTime tempoAttuale = LocalDateTime.now(); 
 							long durata = Math.abs(Duration.between(tempoAllarme, tempoAttuale).toMinutes());
 							if(valore < soglia || durata >= DURATA_SUONO || !automa.antifurtoAttivo() ) {
 								publisher.aggiungiComando("to/"+Antifurto.getMqttTree()+"/gpio/"+antifurto.getNomeOutputSuono(), "{cmd:0}"); // l'allarme viene disattivato
@@ -113,6 +117,7 @@ public class Esecutore extends Thread {
 		js.put("soglia", newValue);
 		Helper.scriviFile(js, Automa.FILE_STATO);
 		soglia = newValue;
+		changedSoglia = true;
 	}
 	
 }
diff --git a/antifurtoMicroservizio/src/code/SubscribeCallback.java b/antifurtoMicroservizio/src/code/SubscribeCallback.java
index 71c093120d37d8441a41b1ead30a09db20dad82e..db78cb0767fb071e76ab0379ec95003cd22e792d 100644
--- a/antifurtoMicroservizio/src/code/SubscribeCallback.java
+++ b/antifurtoMicroservizio/src/code/SubscribeCallback.java
@@ -47,7 +47,7 @@ public class SubscribeCallback implements MqttCallback {
 			try {
 				client.startClient(esec, publisher);
 				retry = false;
-			} catch (MqttException e) {
+			} catch (MqttException | JSONException e) {
 				d2 = new Date();
 				time = Math.abs(d2.getTime() - d.getTime());
 			}
@@ -295,7 +295,7 @@ public class SubscribeCallback implements MqttCallback {
 		}
 	}
 
-	private void sendOutAntifurto() throws JSONException {
+	public void sendOutAntifurto() throws JSONException {
 		JSONObject js = new JSONObject();
 		js.put("attiva-scenari", client.getNomeOutputAntifurto());
 		publisher.aggiungiComando("to/" + Antifurto.getMqttTree() + "/scenari/luceAntifurto", js.toString());
@@ -393,4 +393,7 @@ public class SubscribeCallback implements MqttCallback {
 		jsError.put("error", e.getMessage());
 		publisher.aggiungiComando("from/" + Antifurto.getMqttTree() + "/antifurto", jsError.toString());
 	}
+	
+	
+	// to/gruppo2/luci/antifurto/luceAntifurto
 }