Trouver date et heure changement heure ete hiver

je travaille sous arduino avec un esp32. Pour gerer le temps j'utilise la bibliotheque TimeLib.h. je cherche un programmepour trouver le dernier dimanche de mars et d'octobre pour mettre a jour la lecture de l'heure. Merci.

Post mis dans la mauvaise section, on parle anglais dans les forums généraux, je viens de déplacer le post dans la section francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone".

Merci

1 Like

Peut être une piste ici

Réutilisé ici, en français

Regardez cela

Ca fait longtemps qu'on n'a pas vu @bricoleau ...

1 Like

Le terme est bien gentil... cela s'assimile plus à du plagiat : aucune mention du site original et des mentions légales qui annoncent « La reproduction, représentation ou adaptation de tout ou partie de ce site est formellement interdite sauf autorisation expresse et écrite du directeur de la publication »

Encore une fois merci lesept.
Ton tuto en français TIMEZONES est compliqué a premièere vu mais il me semble qu'il y a les éléments nécessaires.
A vrai dire je construis un tracker solaire et bien sûr je dois gérer le temps. je suis parti avec un ds3231 qui fonctionnait bien. j'avais bidouillé du code et je récupérais l'information nécessaire pour changer l'heure d'été/hiver le dernier dimanche de mars ou d'octobre à2h et 3h.
Tout étais pour le mieux mais incidement j'ai vu qu'avec un serveur NTP on pouvait récupérer l'heure. c'est ce que j'ai fait mais mon code de changement heure été /hiver ne fonctionnait plus..... Et puis surtout mon tracker est sencé être implanté dans la nature donc loin de ma box et donc plus de wifi. J'ai alors résolu le problème en utilisant mon smartphone en modem. Il suffit que je m'approche du tracker pour que le programme voit mon réseau wifi et se connecte au serveur. jusque là pas de pb.
Quand je m'eloigne par contre je perd la connexion mais le esp32 prend la relève et me gére le temps . là je suis dépassé et je ne comprend pas comment ça marche.... quoiqu'il en soit ça fonctionne, Sauf ce changement heure été hiver.
Je bosse et dès que c'est top je teremonte l'information merci.
Qui plus est j'ai aussi réalisé une liaison bluetooh et je peux récupérer avec mon smartphone (quand je suis a proximité bien sûr) les données d'azymut et de hauteur du soleil et définir mes informations de longitude et latitude. un vrai bijou cet ESP32. plus besoin d'afficheur lcd ou oled, d'horloge ds3231, de cablage.... tout se fait en réseau.
désolé de m'etendre ainsi.

Ca semble être un beau projet, bravo !

Si je comprends bien, tu mets l'ESP32 à l'heure via NTP en te connectant en Wifi à ton portable lorsqu'il est à proximité. Mais l'heure de l'ESP32, lorsque tu n'es pas là, risque de dériver et de devenir moins précise. Un DS3231 serait plus indiqué pour conserver une base de temps précise, que tu mettrais à l'heure comme maintenant lorsque to portable est dans la zone de réception du Wifi.

Pour récupérer les données, tu peux aussi créer un point d'accès sur ton ESP32 et mettre un serveur Wifi, sur lequel tu connecteras ton portable lorsque tu y seras.

oui c'est ça . quand je suis a coté la connection s'établie si mon modem est activé et l'heure est rafraichie automatiquement. je n'ai rien a faire.
j'ai regardé ton code : compilation , téléversement: nickel (a part mon moniteur serie qui n'etais pas a 115600.)
je n'ai pas encore tout compris (j'ai 83 ans et je galère quand même pas mal.....): j'ai obtenu l'heure sous plusieurs format mais surtout quand j'ai coupé mon modem android le programme a continué de tourner. C'est l'horloge de l'ESP qui prend la relève. Le temps est bien decompté.
il se peut que la derive soit importante je vais voir a l'usage. Mais je privilègie le minimum de composant.
pour mon tracker je vais avoir l'ESP32, 1 condensateur et 2 servomoteurs. Une alimentation 5V bien sûr). Avant j'avais un afficheur oled, le ds3231, 1 clavier pour entrer les données de longitude et latitude, 1 connection I2C.... Le tout avec seulement 350 lignes de code commentées (rien que les calculs astronomiques il y a du boulot...)
Je vais epluché le programme, il se peut que je te fasse appel. C'est mon anglais qui pêche.....
Pour récupérer les données je pourrais utiliser mon wifi effectivement mais en bluetooth j'utilise l'application android Serie Bluetooth Terminal qui fait parfaitement le boulot. Un grand merci.

Ok, bonne continuation. Le forum est là pour aider

Le site en question est un spécialiste du plagiat, c'est son fonds de commerce, on y retrouve fréquemment , sans les liens importants figurant dans l'original, et sans référence à la source les nouvelles de CNX Software,, appropriation systématique du travail de Random Nerd Tutorials......etc...

:no_entry:Je boycotte le site en question et , délibérément, ne cite jamais ce site

Je propose également qu'on l'élimine de notre liste des sites de tutoriels tant qu'il ne respecte pas le travail des autres

1 Like

Bonne idée...

Désolé, je le note. :frowning_face:

Personnellement je ne vais pas sur les sites qui ne me permettent pas en un click de refuser tous les cookies des annonceurs (même si on peut surfer en mode protégé etc).

Je fais ça. Merci pour l'info !

Cordialement
Pandaroux007

C'est pas faux :smile:

1 Like
SUB PROCEDURE TEST_ETE_HIVER ()

'-------------------------------------------------------------
'les données d'entrée (MOIS_RTC et DATE_RTC) sont en BCD
'le passage à l'heure d'hiver aura lieu le dernier dimanche
'd'octobre, à 3h, il sera 2h
'le test du BIT_HIVER est nécessaire dans le cas du mois
'd'octobre pour ne pas boucler entre 3h et 2h 
'comme on recule d'une heure
'-------------------------------------------------------------

    IF (MOIS_RTC = 16) AND (BIT_HIVER = 0) AND (JOUR_RTC = 7) AND (DATE_RTC > 36) AND (H_RTC = 3) THEN
      H_RTC = 2
      BIT_HIVER = 1

      'màj RTC
      I2C1_START()
      I2C1_WR(RTC_WR)                            'adresse RTC
      I2C1_WR(2)                                 'adresse heures
      I2C1_WR(H_RTC)                             'mise à l'heure d'hiver
      I2C1_STOP()
              
      'màj bit_hiver
      EEPROM_WRITE(0, BIT_HIVER)                 'EEPROM du PIC
      DELAY_MS(20)
    END IF

'-------------------------------------------------------------
'le passage à l'heure d'été aura lieu le dernier dimanche
'de mars, à 2h, il sera 3h
'le test du BIT_HIVER n'est pas nécessaire
'-------------------------------------------------------------

    IF (MOIS_RTC = 3) AND (JOUR_RTC = 7) AND (DATE_RTC > 36) AND (H_RTC = 2) THEN
      H_RTC = 3
      BIT_HIVER = 0
            
      'màj RTC
      I2C1_START()
      I2C1_WR(RTC_WR)                            'adresse RTC
      I2C1_WR(2)                                 'adresse heures
      I2C1_WR(H_RTC)                             'mise à l'heure d'été
      I2C1_STOP()
            
      'màj bit_hiver
      EEPROM_WRITE(0, BIT_HIVER)                 'EEPROM du PIC
      DELAY_MS(20)
    END IF
    
END SUB

Sous programme en Basic de MicroElektronika.
Désolé pour les couleurs.

j'ai corrigé. il suffit d'ajouter text (ou cpp ou html ou un mot clé supporté) après les trois premiers back-ticks pour formatter différemment (il n'y a pas de mise en forme pour le basic cela dit...)

Merci @J-M-L