Ho scritto a Leo, aspetto risposta, ma intanto spiego, mi basta risolvere il primo timer per capire anche gli altri due.
Periodicamente la logica mi accende un dispositivo, in quello stesso istante deve iniziare un conteggio il cui tempo va letto analogicamente (settato via trimmer) in diretta. Allo scadere di questo tempo il dispositivo si deve spegnere; l'accensione del dispositivo non è ciclica, dipende da vari fattori, quindi devo poter avviare il timer all'occorrenza e non periodicamente.
Durante il conteggio del tempo però potrebbero succedere due cose:
1 - arriva un nuovo comando di accensione del dispositivo, il timer si deve resettare e ripartire da questo nuovo comando
2 - arriva un comando di spegnimento immediato del dispositivo, il timer si deve resettare e basta.
Ecco, la sola prima volta, se il timer riesce ad arrivare fino alla fine del suo conteggio il dispositivo si spegne, ma se lo vado a riaccendere si rispegne all'istante, e solo la seconda volta riparte regolarmente.
Se poi aggiungo l'aggravante dei nuovi comandi allora iniziano a sballare, perché il timer non si resetta e quindi termina regolarmente il suo conteggio ed in più se ne sovrappone un altro.
Ovvio che ho sbagliato l'implementazione, sto usando l'opzione ONETIME ma invece di mettere il task in setup l'ho messo nella stessa routine che mi legge il valore analogico, non riesco a fare diversamente.