diff --git a/antifurtoMicroservizio/res/stato.json b/antifurtoMicroservizio/res/stato.json
index cceb6f12bd30fd92290b0b2843e7baa13595b79d..02a79cd8ad5a1019ab954335e3da813985447793 100644
--- a/antifurtoMicroservizio/res/stato.json
+++ b/antifurtoMicroservizio/res/stato.json
@@ -1 +1 @@
-{"soglia":30,"stato":0,"valore":1,"tempoAllarme":"2022-09-29T10:48:55.183695"}
\ No newline at end of file
+{"soglia":30,"stato":0,"valore":0,"tempoAllarme":"2022-10-13T17:47:23.624881"}
\ No newline at end of file
diff --git a/antifurtoMicroservizio/src/code/Antifurto.java b/antifurtoMicroservizio/src/code/Antifurto.java
index 80122cb560bb5a43756be37f922952f6b115e98e..de6eadb5a6675488204237acaefc08af2aa66a89 100644
--- a/antifurtoMicroservizio/src/code/Antifurto.java
+++ b/antifurtoMicroservizio/src/code/Antifurto.java
@@ -132,7 +132,7 @@ public class Antifurto {
 
 		SubscribeCallback subCall = new SubscribeCallback(this, publisher, esec, automa);
 		mqttClient.setCallback(subCall);
-
+		
 		mqttClient.connect(options);
 
 		for(String t: topicsSub)
@@ -154,76 +154,6 @@ public class Antifurto {
 
 
 
-
-	/*
-	 * Abbiamo 3 tipi di eventi:
-	 * 		to 		Command Events - mi viene richiesto di eseguire un comando --> sottoscrivo
-	 * 		from 	Status Events - io annuncio un cambiamento di stato
-	 * 								(inviato a tutti i client che hanno sottoscritto il topic su cui faccio la publish)
-	 * 		rpc 	Query Events - richiesta di inviare uno stato a un client (o microservizio). --> sottoscrivo
-	 * 			  				   Query implementati come coppia di eventi: <query event, status event>
-	 * RICORDIAMO COME ABBIAMO IMPLEMENTATO LA RPC SU MQTT
-	 *
-	 *
-	 *
-	 * Il cuore della nostra business logic e' un metodo in cui mi metto in attesa su mqtt e:
-	 * 		se arriva un comando, chiamo il metodo responsabile per eseguire quel comando;
-	 * 		se arriva un evento di stato, chiamo il metodo responsabile per gestire quell'evento di stato;
-	 * 		se arriva una remote procedure call, attivo la risposta sulla remote procedure call
-	 *
-	 *
-	 *
-	 * Capire come gestire sistema a regole (vedi slide "Esempio" in "Applicazioni IoT "Cloud Based"")
-	 *
-	 *
-	 *
-	 * Sicurezza gestita con TLS
-	 *
-	 *
-	 *
-	 * FILE DA FARE per un servizio: (?)
-	 * 		file che contiene le informazioni per connettersi al mosquitto locale
-	 * 		file che dice qual'e' la porta che lui deve esporre
-	 * 		file che mi dice tutte le cose che lo configurano, ad esempio quanti device deve guardare
-	 * 		...
-	 *
-	 * 	I file di configurazione sono in JSON o in XML
-	 * I dati persistiti si troveranno nella sottodirectory (chiamata con il nome del servizio) di Home
-	 *
-	 *
-	 * Nella fase di configurazione potremo ancora modificare i file di configurazione (ad esempio aggiungendo device,
-	 * regole). Dopodiche' quando si fa partire il servizio si iniziera' a usare l'altra parte di file system (ovvero il Local
-	 * Dynamic File System) dove si andranno a salvare gli stati per renderli persistenti.
-	 *
-	 *
-	 *
-	 * Ho un processo principale che come unico compito ha quello di fare una fork() e creare un processo figlio.
-	 * Sara' questo processo figlio a eseguire effettivamente il programma. Se il processo figlio termina (PER UN QUALCHE
-	 * PROBLEMA), allora il processo padre se ne accorge e fa ripartire un nuovo processo figlio.
-	 *
-	 *
-	 * Devo avere una thread di configurazione che obbedisce ai miei comandi (dati sulla HAT interface andando su
-	 * 	192.168.0.101:9001/configure.html (dove 192.168.0.101 e' l'indirizzo della beaglebone)
-	 *
-	 *
-	 * Ho una classe che implementa l'automa a stati finiti
-	 *
-	 *
-	 *
-	 *
-	 * NOTA:
-	 * All'avvio, leggo il file stato e mi imposto di conseguenza. Poi interrogo la beaglebone per sapere SOLO lo stato
-	 * dell'antifurto (luce rossa), ovvero se l'antifurto e' on o off. Lo stato del sensore di suono, non mi interessa: poiche'
-	 * sono solo io a impostarlo (la web app si comporta in conseguenza dei miei messaggi).
-	 * Mi serve interrogare la beaglebone per lo stato dell'antifurto perche' puo' succedere che l'antifurto abbia avuto
-	 * dei problemi e quindi non abbia funzionato per un po' e nel mentre l'utente ha attivato l'antifurto dagli scenari.
-	 * Quindi proprio perche' sia il mio antifurto sia gli scenari comandano lo stesso antifurto, devo fare questa richiesta
-	 * alla beaglebone.
-	 * Dopo aver chiesto lo stato dell'antifurto alla beaglebone, so esattamente lo stato in cui devo essere --> mi imposto
-	 * di conseguenza!
-	*/
-
-
 	public static void main(String args[]) throws JSONException, IOException {
 		boolean exc = true;
 		System.out.println("antifurto started");
diff --git a/antifurtoMicroservizio/src/code/Esecutore.java b/antifurtoMicroservizio/src/code/Esecutore.java
index 77fc65c7d40ff75ee25e8aac150659118843100d..4ee93eaab3b8d82fb66e82172d4de85582dd7b1f 100644
--- a/antifurtoMicroservizio/src/code/Esecutore.java
+++ b/antifurtoMicroservizio/src/code/Esecutore.java
@@ -69,9 +69,10 @@ public class Esecutore extends Thread {
 					}
 					else {
 						if(automa.allarme()) {
-							LocalDateTime tempoAttuale = LocalDateTime.now(); 
-							long durata = Math.abs(Duration.between(tempoAllarme, tempoAttuale).toMinutes());
-							if(valore < soglia || durata >= DURATA_SUONO || !automa.antifurtoAttivo() ) {
+							LocalDateTime tempoAttuale = LocalDateTime.now();
+							Long durata = null;
+							if(tempoAllarme != null) durata = Math.abs(Duration.between(tempoAllarme, tempoAttuale).toMinutes());
+							if(valore < soglia || (durata != null && durata >= DURATA_SUONO) || !automa.antifurtoAttivo() ) {
 								publisher.aggiungiComando("to/"+Antifurto.getMqttTree()+"/gpio/"+antifurto.getNomeOutputSuono(), "{cmd:0}"); // l'allarme viene disattivato
 							}
 						}
@@ -88,7 +89,11 @@ public class Esecutore extends Thread {
 				
 			}
 			if(!automa.antifurtoAttivo()) {
-				reset();
+				try {
+					reset();
+				} catch (JSONException | IOException e) {
+					e.printStackTrace();
+				}
 			}
 		}
 	}
@@ -98,9 +103,12 @@ public class Esecutore extends Thread {
 		codaVal.send(n);
 	}
 	
-	public void reset() {
+	public void reset() throws JSONException, IOException {
 		valore = 0;
 		codaVal.removeAll();
+		JSONObject js = new JSONObject(Helper.leggiFile(Automa.FILE_STATO));
+		js.put("valore", valore);
+		Helper.scriviFile(js, Automa.FILE_STATO);
 	}
 	
 	public static int getSoglia() {
diff --git a/antifurtoMicroservizio/src/code/SubscribeCallback.java b/antifurtoMicroservizio/src/code/SubscribeCallback.java
index 71faef13806fa1ad0a4a985bb7ed248e24cb601b..820a4f9991e789ea997d62c8135ce33d84372a0b 100644
--- a/antifurtoMicroservizio/src/code/SubscribeCallback.java
+++ b/antifurtoMicroservizio/src/code/SubscribeCallback.java
@@ -395,5 +395,4 @@ public class SubscribeCallback implements MqttCallback {
 	}
 
 
-	// to/gruppo2/luci/antifurto/luceAntifurto
 }
diff --git a/webserver/public/domains.html b/webserver/public/domains.html
index 4712c9a6a277acd215da706ce74949f2c4f9c778..75a7932efdfdab766436c03107239d2115b2b2ab 100644
--- a/webserver/public/domains.html
+++ b/webserver/public/domains.html
@@ -26,28 +26,11 @@
 
 <body id="body-id">
     <div id="alert-message" role="alert" class="alert invisible">
-        <!-- <div class="d-flex justify-content-around container-fluid">
-            <i class="fa-solid fa-exclamation-circle fa-4x" aria-hidden="true"></i>
-            <div>
-                <h4 class="alert-heading">Attenzione</h4>
-                <p>Stai registrando uno scenario, termina la registrazione per attivare l'antifurto.</p>
-            </div>
-        </div> -->
         <!-- any error or confirmation goes here (updated by JS) -->
         <!-- alert-danger -->
         <!-- alert-success -->
     </div>
     <h1>Pissir SmartHome</h1>
-    <!-- <a href="http://$DOMAIN/realms/$REALM/protocol/openid-connect/auth?
-    response_type=code&
-    code_challenge=$MY_CODE_CHALLENGE&
-    code_challenge_method=S256&
-    client_id=myclient&
-    redirect_uri=$MY_REDIRECT_URI&
-    scope=openid&
-    nonce=a81e1a84-8885-4702-b8d1-f6c5a0d1fc4d&
-    response_mode=fragment&
-    state=$MY_STATE" id="my-link">I'm the best at logging in :p</a> -->
 
     <div class="container-fluid table-responsive">
         <table class="table table-striped">
@@ -116,51 +99,6 @@
                         <div id="valid-domainName" class="valid-feedback"></div>
                         <div id="invalid-domainName" class="invalid-feedback"></div>
 
-                        <!--<div class="form-check">
-                                <input class="form-check-input" type="checkbox" value="" id="${nomeServizio}"/>
-                                <label class="form-check-label" for="#${nomeServizio}">
-                                    ${nomeServizio}
-                                </label>
-                            </div>-->
-
-                        <!--<fieldset class="is-invalid">
-                                <legend>Scegli uno o piu' servizi</legend>
-                                <div class="form-check">
-                                    <input class="form-check-input" type="checkbox" value="${nomeServizio}" id="${nomeServizio}"/>
-                                    <label class="form-check-label" for="#${nomeServizio}">
-                                        ${nomeServizio}
-                                    </label>
-                                </div>
-                                <div class="form-check">
-                                    <input class="form-check-input" type="checkbox" value="${nomeServizio}" id="${nomeServizio2}"/>
-                                    <label class="form-check-label" for="#${nomeServizio2}">
-                                        ${nomeServizio}
-                                    </label>
-                                </div>
-                                <div class="form-check">
-                                    <input class="form-check-input" type="checkbox" value="${nomeServizio}" id="${nomeServizio3}"/>
-                                    <label class="form-check-label" for="#${nomeServizio3}">
-                                        ${nomeServizio}
-                                    </label>
-                                </div>
-                                <div class="form-check">
-                                    <input class="form-check-input" type="checkbox" value="${nomeServizio}" id="${nomeServizio4}"/>
-                                    <label class="form-check-label" for="#${nomeServizio4}">
-                                        ${nomeServizio}
-                                    </label>
-                                </div>
-                            </fieldset> -->
-
-                        <!--<div id="utente0">
-                                <label for="#nuovoUtente" class="form-label">Nuovo utente</label>
-                                <input type="text" class="form-control" id="nuovoUtente" aria-describedby="#nuovoUtenteHelp">
-                                <div id="nuovoUtenteHelp" class="form-text">Inserisci il nome del nuovo utente.</div>
-
-                                <label for="#passwordUtente" class="form-label">Password utente</label>
-                                <input type="text" class="form-control" id="passwordUtente" aria-describedby="#passwordUtenteHelp">
-                                <div id="passwordUtenteHelp" class="form-text">Inserisci la password del nuovo utente.</div>
-                            </div>-->
-
                     </div>
                     <div class="modal-footer justify-content-around">
                         <button type="button" class="btn btn-dark" id="add-user-button">Aggiungi utente</button>
diff --git a/webserver/public/js/authentication/requests-to-domain.js b/webserver/public/js/authentication/requests-to-domain.js
index cd51cbb1a00ff1ec0e649558973f0cac3fe8e54c..c18e8d3872c21709b59876f6b1f0ff00ba266fc8 100644
--- a/webserver/public/js/authentication/requests-to-domain.js
+++ b/webserver/public/js/authentication/requests-to-domain.js
@@ -11,7 +11,7 @@ class RequestToDomain {
     * sui domini dell'utente che ha effettuato il login
     */
     static async getMyDomains() {
-        const responseDomain = await fetch(`${getDomainURL()}secured/domains/`, {  // DA FARE: controllare che l'uri che ho specificato qui coincida con quello specificato dal domain manager
+        const responseDomain = await fetch(`${getDomainURL()}secured/domains/`, {  
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${await getToken()}`
@@ -58,7 +58,7 @@ class RequestToDomain {
      * disponibili.
      */
     static async getAllServices() {
-        const responseDomain = await fetch(`${getDomainURL()}secured/services`, {  // DA FARE: controllare che l'uri che ho specificato qui coincida con quello specificato dal domain manager
+        const responseDomain = await fetch(`${getDomainURL()}secured/services`, {  
             method: 'GET',
             headers: {
                 'Authorization': `Bearer ${await getToken()}`
diff --git a/webserver/public/js/authentication/script.js b/webserver/public/js/authentication/script.js
index 181700fee80da2286efee44635504ba529dcb148..a04dd0d90205175eb289b45089b3918c70d4c15d 100644
--- a/webserver/public/js/authentication/script.js
+++ b/webserver/public/js/authentication/script.js
@@ -140,11 +140,13 @@ function timeoutRefresh() {
         clearTimeout(oldTimeout);
 
     return setTimeout(async () => {
+        console.log("fired!",{alreadyRefreshed})
         if(!alreadyRefreshed) {
             await requestUsingRefreshToken();
             alreadyRefreshed = false;
+            console.log("refreshed!")
         }
-    }, 10000);//(token.refresh_expires_in*1000)-5000);
+    }, (token.expires_in*1000)-5000); // richiedo il nuovo token 5 secondi prima che il token scada
 }
 
 
diff --git a/webserver/public/redirect.html b/webserver/public/redirect.html
index 19cbdc2d2a2ffea4625d2931eb518fffd29739a5..2b7468bdb2ab322ffdda113ed356ff30ba8337c9 100644
--- a/webserver/public/redirect.html
+++ b/webserver/public/redirect.html
@@ -4,34 +4,12 @@
 <head>
     <meta charset="utf-8">
     <title id="title">SmartHome</title>
-    <!--<link rel="icon" href="res/favicon.png">-->
-    <!-- link all other useful scripts -->
-
-    <!-- link bootstrap -->
-    <!--<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
-        integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
-    <script defer src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
-        integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
-        crossorigin="anonymous"></script>-->
-    <!-- link fontawesome (for icons)-->
-    <!-- <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
-            integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> -->
-    <!-- <script defer src="https://kit.fontawesome.com/a1635545b7.js" crossorigin="anonymous"></script> -->
-    <!-- link my scripts and styles -->
-    <!-- <link rel="stylesheet" href="css/style.css" type="text/css">
-    <link rel="stylesheet" href="css/buttons.css" type="text/css"> -->
-    <!-- <script defer src="https://github.com/nodejs/node/blob/v18.8.0/lib/crypto.js" type="text/javascript"></script> -->
-    <!-- <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script> -->
-    <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script> -->
     <script defer src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>
-    <!-- <script defer src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
-    <script defer src="js/authentication/axios.min.js"></script> -->
     <script defer src="js/authentication/moment.min.js"></script>
     <script defer src="js/authentication/script.js" type="module"></script>
 </head>
 
 <body>
-    <!--<h1>Pissir SmartHome</h1>-->
     <a href="http://$DOMAIN/realms/$REALM/protocol/openid-connect/auth?
     response_type=code&
     code_challenge=$MY_CODE_CHALLENGE&
@@ -41,6 +19,6 @@
     scope=openid&
     nonce=a81e1a84-8885-4702-b8d1-f6c5a0d1fc4d&
     response_mode=fragment&
-    state=$MY_STATE" id="my-link" style="visibility: hidden">I'm the best at logging in :p</a>
+    state=$MY_STATE" id="my-link" style="visibility: hidden"></a>
 </body>
 </html>
\ No newline at end of file