Log in Register

Login to your account

Username
Password *
Remember Me

Create an account

Fields marked with an asterisk (*) are required.
Name
Username
Password *
Verify password *
Email *
Verify email *
Captcha *
  • Page:
  • 1
  • 2

TOPIC: RTC, Horloge, changements d'heure

RTC, Horloge, changements d'heure 01 Dec 2013 23:36 #1

Problématiques connues avec la gestion date/heure :
1 - gérer les problématiques de changement horaire été/hiver
2 - permettre à des machines géographiquement distantes de comparer leurs dates/heures, fuseaux horaires.

Voici les besoins identifiés à ce jour sur xplduino :

- pouvoir déclencher des actions à heure fixe.
- dater les événements envoyés à la console série.

Mon point de vue :

Jusqu'à preuve du contraire, nous pouvons faire l'impasse sur le point numéro 2. Pour donner un aperçu des impacts s'il fallait en tenir compte, mes travaux persos sur le sujet préconisent de stocker/véhiculer le format suivant : date/heure locale + décalage horaire par rapport à UTC.

Concernant le point 1, qui nous concerne immédiatement :

Le principe est que l'appareil ne soit pas pris en défaut au moment des changements horaires. Voici les pistes que je connais, de la plus simple à la plus efficace :

- Mauvaise piste : faire fonctionner l'appareil en heure UTC. Dans ce cas la planification d'un évènement récurrent comme par exemple "déclencher tous les jours à 9H" ne peut être pris en charge par l'appareil, qui ne sait pas se recaler sur l'heure locale.

- Mettre à jour l'heure soi même via bitlash : facile mais sujet à l'erreur humaine, et il y a un laps de temps pendant lequel l'appareil est faux.

- planifier le changement horaire : faire en sorte de planifier une tâche sur la SMB pour qu'à telle date/heure elle se décale de x.

- planifier les changements horaires : pousser dans la ROM de la SMB un tableau des n prochains changements horaires, et prévoir un mécanisme de check de ces évènements. C'est la méthode utilisée dans les appareils "embarqués" sur lesquels je travaille actuellement.

Il faut savoir que les changements horaires pour chaque pays sont connus et planifiés longtemps à l'avance. La base de données officielle "TZ Database" donne la liste des changements horaires pour chaque "zone horaire" du monde, jusqu'à 2037. Certains états / provinces/pays peuvent changer leur planning de changement horaire, mais c'est un évènement rare et qui ne passe pas inaperçu pour l'utilisateur.

TZ Database :
fr.wikipedia.org/wiki/Tz_database

Le feedback rapide de GRomain sur la question, avec des alternatives sympa :

on a plusieurs options:
1 - à la main
2 - auto par calcul si on est le jour du changement d'heure
3 - par interrogation d'un serveur ntp
4 - par le message xpl datetime émis par domogik

L'option 3 est pas mal : on synchronise une fois par jour à une heure qui coïncide avec celle du changement horaire de son pays (3h pour la France, différent pour d'autres). Par contre il faut l'accès à internet.

L'option 4 est pas mal si tant est qu'un Domogik existe sur le réseau.

A vous la parole.
  • Frunk
  • Avatar 2013 01 08
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 70
  • Thank you received: 1
  • Karma: 1
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 10:03 #2

Précision sur le fonctionnement actuel de la date et heure dans xPLduino.
La SMB embarque une horloge RTC DS1307 avec sauvegarde de l'heure par pile en cas de coupure d'énergie.
Le soft interroge le DS1307 toutes les secondes. On travaille ensuite avec la date et heure lue, jusqu'à la prochaine mis à jour.

Pour gérer l'heure d'été/hiver de manière autonome, la solution la plus évidente -mais pas forcément la meilleure- est d'utiliser la règle de changement d'heure:
-dernier dimanche de mars pour passage en heure d'été
-dernier dimanche d'octobre pour passage en heure d'hiver

A l'heure du changement, on vérifie un flag en mémoire ROM, et si on a pas encore avancé ou reculé l'heure, on effectue le changement et on met à jour ce flag.

La méthode permet de s'affranchir d'un système tiers.

Reste le problème de la dérive de la date calculée par le DS1307. Pour corriger au fur et à mesure, une requête à un serveur NTP parait idéale, mais il faut une connexion à Internet.

A méditer. A vos idées !
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 11:38 #3

Une autre variante facile à coder et à priori efficace en terme de ressource :

if("date/heure actuelle" = "date/heure changement été prochain") OU
("date/heure actuelle" = "date/heure changement été suivant") OU
("date/heure actuelle" = "date/heure changement été suivant") OU
("date/heure actuelle" = "date/heure changement été suivant") OU
{
faire le changement horaire été
}

idem changement hiver.

Perso j'ai une préférence pour le stockage en EEPROM d'un tableau avec les n prochains changements été et les n prochains changements hiver (chacun ayant un flag), et quand tout le tableau est "flaggé" la SMB envoie une alerte pour se faire rafraîchir (un coup de bitlash doit pouvoir faire ça).

Romain, pour ton algorithme, il y en a un dispo

forum.arduino.cc/index.php?topic=70024.0

Au fait, dans bitlash je n'ai pas vu la mention du "day of week".
  • Frunk
  • Avatar 2013 01 08
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 70
  • Thank you received: 1
  • Karma: 1
Last Edit: 02 Dec 2013 11:45 by Frunk.
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 11:50 #4

Plutôt qu'une synchronisation avec un serveur NTP, je suggère une synchronisation, une fois par jour à une heure à déterminer, sur l'horloge atomique allemande, grace au protocole DCF77

www.idreammicro.com/post/dcf77-arduino

Avantages:
-pas besoin d'être connecté à internet, fonctionnement en mode autonome total
-passage automatique heure hiver/heure d'été
-très grande précision horaire du DS1307 de la SMB
-signal reçu dans de nombreux pays europééns (portée émetteur 1500 Km)

J'ai une mini station météo, ridicule et pas chère du tout qui se remet seule à l'heure exacte tous les jours à 1h du matin, ceci pour dire que ça doit être faisable facilement et à moindre coût pour Xplduino.

A vous!

+ d'infos sur le signal DCF77, l'ensemble des infos transmises (jour, mois, année, été/hiver et heure) et les modalités de transmission/

www.mon-club-elec.fr/pmwiki_mon_club_ele...RENDREProtocoleDCF77
  • jean-marc
  • Nophoto
  • OFFLINE
  • Senior Boarder
  • Rank2
  • Posts: 60
  • Thank you received: 1
  • Karma: 0
Last Edit: 02 Dec 2013 12:02 by jean-marc.
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 11:56 #5

L'idée est pas mal, mais quelques contraintes apparaissent. J'ai une station météo avec ce système (sauf erreur), et elle ne capte plus depuis que j'ai déménagé. Pourtant je suis en pavillon à Strasbourg. Mais je ne suis pas persuadé qu'elle soit sur cet émetteur. (star météo)
  • Frunk
  • Avatar 2013 01 08
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 70
  • Thank you received: 1
  • Karma: 1
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 12:07 #6

Conrad, selectronic, etc...vendent de petits modules tout faits de réception des signaux DCF77 pour environ 10€.

www.conrad.com/ce/fr/product/641138/Plat...rol?ref=searchDetail

En ce qui me concerne je peux te dire que dans le trou où j'habite les téléphones portables ne passent pas, et les signaux TNT non plus...et pourtant ceux de l'horloge atomique de Francfort arrivent!

fr.wikipedia.org/wiki/DCF77

PS: à Strasbourg, il est impossible que tu ne puisses recevoir ces signaux!! soit ta station météo n'est pas calée sur cet emetteur, soit tu as cassé la ferrite lors du déménagement!!
  • jean-marc
  • Nophoto
  • OFFLINE
  • Senior Boarder
  • Rank2
  • Posts: 60
  • Thank you received: 1
  • Karma: 0
Last Edit: 02 Dec 2013 12:43 by jean-marc.
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 12:26 #7

un volontaire pour tester et implémenter le DCF77 ?
pas beaucoup de littérature pour se fabriquer son propre récepteur Sad
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 12:59 #8

Je veux bien investir dans un module de réception DCF (pas besoin de le fabriquer, juste à l'intégrer comme tu as fait pour le module horloge actuel)
Après:
- j'ai compris qu'il ne fallait utiliser ce système que pour synchroniser le 1307, de préférence la nuit car la réception est toujours meilleure.
-J'ai compris qu'il existe déjà une librairie Arduino DCF77 et de nombreux montages ont été réalisés
- J'ai compris que Romain était un programmateur hors pair

Donc je ne comprends pas pourquoi ce serait impossible, la smb le mérite!
Romain, sans déconner, veux tu que je te fasse parvenir ce circuit? (ma petite contribution)

www.conrad.com/ce/fr/product/641138/Plat...rol?ref=searchDetail

Edit:
Et pour 1€ de plus, il y a ça, avec LCD, qui pourrait être installé dans un boitier rail DIN et constituer le module externe DCF de la SMB, il doit bien y avoir moyen de repiquer les signaux qq part pour les injecter sur la smb...

www.conrad.com/ce/fr/product/641871/Modu...ew1&rt=detview1&rb=2
  • jean-marc
  • Nophoto
  • OFFLINE
  • Senior Boarder
  • Rank2
  • Posts: 60
  • Thank you received: 1
  • Karma: 0
Last Edit: 02 Dec 2013 13:13 by jean-marc.
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 13:59 #9

Donc ce que je ne comprends pas pourquoi ce serait impossible, la smb le mérite!
Romain, sans déconner, veux tu que je te fasse parvenir ce circuit? (ma petite contribution)

ah mais j'ai pas dit que c'était impossible !
C'est une question de temps et de matos.

Et puis on a jusqu'au mois de mars pour implémenter ça.
Je suis preneur d'un DCF77 pour faire l'intégration d'ici là Wink

Romain
  • gromain
  • Avatar 2013 01 07
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 153
  • Thank you received: 10
  • Karma: 3
The administrator has disabled public write access.

RTC, Horloge, changements d'heure 02 Dec 2013 14:24 #10

Par contre le DCF77 est jusqu'à preuve du contraire particulièrement cher. Je propose de poursuivre de mon côté la recherche d'une solution logicielle, qui serait universelle. Déjà le module RTC est un budget, si on ajoute le DCF on arrive à 15€ rien que pour la gestion de l'heure, c'est pas cohérent pour une implémentation en standard dans la smb.
  • Frunk
  • Avatar 2013 01 08
  • OFFLINE
  • Administrateur
  • Administrateur
  • Posts: 70
  • Thank you received: 1
  • Karma: 1
Last Edit: 02 Dec 2013 14:25 by Frunk.
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Backtotop