swRTC

Io uso il server del inrim, configurando il pacchetto npt come nell'esempio dell'ide ricevo ovviamente il tempo ntp.
Non vedo altri parametri da settare per richiedere l'ora legale od il fuso italiano :
Cmq ho risolto cambiando libreria ed usando quella suggerita da paolo, il cambio è stato abbastanza indolore.

  Serial.print("Seconds since Jan 1 1900 NTP = " );
    Serial.println(mydata.secsSince1900ES); // seconds since 1900
    // now convert NTP time into everyday time:
    Serial.print("Unix time NTP = ");
    // Unix time starts on Jan 1 1970. In seconds, that's 2208988800:
    const unsigned long seventyYears = 2208988800UL;     
    // subtract seventy years:
    unsigned long epochUnix = mydata.secsSince1900ES - seventyYears;  
    // print Unix time:
    Serial.println(epochUnix);  
    // Trasformo il tempo unix in secondi dal 2000.
    epochUnix -= SECONDS_FROM_1970_TO_2000; 
    // Aggiungo il fusorario (Italy +1h - 3600s) per passare dal tempo UTC al tempo TMEC
    epochUnix += fusoorario; 
    // Compenso eventuali lag nella sincronizzazione
    epochUnix += erroreSyncNTP;
    // Adjust daylight saving time ( ora legale europea )
    RTC.getTime();
    if ( RTC.isMEZSummerTime() != 0 ) { // se siamo nel periodo dell'ora legale europea
      // tra l'ultima domenica di marzo e l'ultima domenica di ottobre
      epochUnix += 3600; // aggiungo un ora
      Serial.println(F("Ora Legale in vigore. Aggiunta un ora.")); 
    }
    else { 
      Serial.println(F("Ora Legale non in vigore.")); 
    }

    if (millis() > contatoreSyncNTP) { // se è avvenuto un reset o se sono passate 24 ore
      contatoreSyncNTP = millis() + (intervalloSyncNTP*3600000); // aggiorno il contatore aggiungendo 24 ore 
      // (moltiplico intervalloSyncNTP * il numero di millisecondi in un ora 3600000)     
      // avvio la sincronizzazione NTP
      srlcd.clear();
      srlcd.setCursor(0, 0);
      srlcd.print(F("Sincronizzazione NTP"));
      srlcd.setCursor(0, 1);
      ShowTimeLCD();
      ShowTimeSERIAL();
      // sincronizza RTC con NTP 
      RTC.fillByTime2000(epochUnix);
      RTC.setTime();
      RTC.startClock();
      flagSyncNTP = 1; // flag di avvenuta sincronizzazione NTP
      Serial.println(F("RTC adjusted"));
      Serial.print(F("FlagSyncNTP:"));
      Serial.println(flagSyncNTP);
      srlcd.setCursor(0, 2);
      srlcd.print(F("----RTC adjusted----"));
      srlcd.setCursor(0, 3);
      ShowTimeLCD();
      ShowTimeSERIAL();
      delay (4000);
    }

Per ora sembra andare :slight_smile: Anche se ci sono cose in quella libreria che francamente non capisco...