Demande tutoriel mysql avec ws2350

Répondre
mclem
Nouveau membre
Messages : 2
Inscription : mar. avr. 06, 2010 10:17 pm
Contact :

Demande tutoriel mysql avec ws2350

Message par mclem »

Bonjour, je suis nouveau sur le forum.
Je commence la php et mysql, existe-t-il un tutoriel pour l'utilisation de graphweather avec mysql ou quelqu'un peut m'expliquer succinctement.
Mon gros problème est que je n'arrive pas à envoyer mes données de ma station WS2350 vers ma table.
Merci pour vos éventuels réponse
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par jturlier »

Bonjour,
pour envoyer des données de ta station vers une table, il faut que le logiciel qui pilote ta station soit prévu pour le faire. La question qui se pose est donc : quel est-il ? Je ne savais pas qu'il en existait dans le commerce.
Jean
mclem
Nouveau membre
Messages : 2
Inscription : mar. avr. 06, 2010 10:17 pm
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par mclem »

Le logiciel qui utilise les données de la station est heavyweather. Mais il n'est pas prévu pour envoyer les données dans une table enfin je pense.
Il enregistre en auto dans le fichier history.dat et curdast.lst pour le temps réel.
Mais c'est tout.
Donc c'est pas possible...?
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par jturlier »

Bonjour,
pas possible uniquement avec ça.
Jean
Avatar de l’utilisateur
pat46fr
Membre
Messages : 173
Inscription : mar. juil. 20, 2010 6:23 pm
Localisation : Vers-sur-lot (46)
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par pat46fr »

Heeu, les programmes qu'il y a ici http://www.aguilmard.com/index.php?page=graphweatherphp permettent de récupérer les données du history.dat et de les injecter dans une table. Il y a la version WS2300 et la WS3600. J'ai récupéré les données de ma WS3650 avec ces fichiers. C'est long mais ça marche. Seul problème que j'ai, c'est que les données stockées dans la database ont 2 heures de trop (par exp 22h00 au lieu de 20h00 pour l'heure du relevé) alors que dans le history c'est OK. Si Titoine passe par là, me semble que c'est au niveau de la conversion avec Delphi que ça coince. D'ailleurs si quelqu'un pouvait me tuyauter sur cette heure Delphi je suis preneur. Quelle différence avec le timestamp Unix?
Merci, Pat
Station: WS3650, HeavyWeather3600 1.1, GraphWeather 2.O.312b (essai v3 mais soucis), XP SP2, données stockées automatiquement en BDD MySQL en local et sur le site avec scripts PHP fabrication maison.
Image
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par jturlier »

pat46fr a écrit :D'ailleurs si quelqu'un pouvait me tuyauter sur cette heure Delphi je suis preneur. Quelle différence avec le timestamp Unix?
Merci, Pat
Le timestamp Unix démarre le 1/1/1970.
Ds history.dat les dates sont référencées par rapport au 1/1/1900.
Le paramètre delphi1970 représente le nombre de jours entre le 1/1/1970 et le 1/1/1900.
pat46fr a écrit :Seul problème que j'ai, c'est que les données stockées dans la database ont 2 heures de trop (par exp 22h00 au lieu de 20h00 pour l'heure du relevé) alors que dans le history c'est OK.
Les données sont correctes ds history, cela ne signifie pas que les fichiers WS3600 et WS3650 sont créés exactement de la même façon !!!!!!
Cela semble indiquer que le décalage horaire est inclus, ce qui n'est pas le cas avec la WS3600 (fichier en UTC). Tu as tjs la possibilité de modifier les heures en ôtant 7200 s ou 3600 en fonction de l'heure d'été ou d'hiver. Il existe des fonctions PHP qui peuvent aider à traiter ce pb.

Jean
Avatar de l’utilisateur
pat46fr
Membre
Messages : 173
Inscription : mar. juil. 20, 2010 6:23 pm
Localisation : Vers-sur-lot (46)
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par pat46fr »

Le timestamp Unix démarre le 1/1/1970.
Ds history.dat les dates sont référencées par rapport au 1/1/1900.
Merci, c'est tout ce que je voulais savoir. :D
Le timestamp Unix démarre le 1/1/1970.
Ds history.dat les dates sont référencées par rapport au 1/1/1900.
Tout à fait d'accord. Si je comprends tout bien, l'history.dat enregistrerai en tenant compte de heure été/ heure hiver. Je vais essayer de trouver le truc pour remettre ça aux bonnes valeurs. Apparemment en utilisant le paramètre i de la fonction date on récupère si c'est été ou hiver. Après comme tu dis suffit d'enlever 3600 ou 7200 suivant le cas.
J'y retourne.
Merci encore, Pat
Station: WS3650, HeavyWeather3600 1.1, GraphWeather 2.O.312b (essai v3 mais soucis), XP SP2, données stockées automatiquement en BDD MySQL en local et sur le site avec scripts PHP fabrication maison.
Image
Avatar de l’utilisateur
pat46fr
Membre
Messages : 173
Inscription : mar. juil. 20, 2010 6:23 pm
Localisation : Vers-sur-lot (46)
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par pat46fr »

bon apparemment j'ai trouvé le petit truc pour remettre mes heures à l'heure. Si ça intéresse du monde je mettrais le bout de code (qui est de ma fabrication, ya mieux ans doute mais ça a l'air de marcher, c'est l'essentiel).
Pat
Station: WS3650, HeavyWeather3600 1.1, GraphWeather 2.O.312b (essai v3 mais soucis), XP SP2, données stockées automatiquement en BDD MySQL en local et sur le site avec scripts PHP fabrication maison.
Image
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par jturlier »

pat46fr a écrit :bon apparemment j'ai trouvé le petit truc pour remettre mes heures à l'heure. Si ça intéresse du monde je mettrais le bout de code (qui est de ma fabrication, ya mieux ans doute mais ça a l'air de marcher, c'est l'essentiel).
Pat
Bonjour Pat,
si tu peux mettre ta correction et les lignes concernées, ça m'intéresse.

Il y a cependant dans tout ceci un point qui me chagrine :
La ws2300 utilise un "timestamp" type delphi qui n'intègre pas de décalage horaire, on est donc en mode UTC et les TS Unix résultants sont "purs" (démarrage 01/01/1970 00:00:00 UTC).
La ws2350 SI son timestamp reflète bien le décalage horaire fera perdre 1 heure de données au passage à l'heure d'hiver (le passage de 3:00 à 2:00). il ne devrait pas y avoir de pb pour la passage à l'heure d'été.

Ceci ne pourra sans doute être vu qu'aux changements d'horaire ! A mon avis, ce sera un point à vérifier.

J'ai un pb en VB.net qui charge une DB à partir des fichiers de la WS2300 (entre autres), et j'ai fait les modifs pour traiter aussi la WS2350, c'est ce qui m'a incité soulever ce point de détail.

Jean
Avatar de l’utilisateur
pat46fr
Membre
Messages : 173
Inscription : mar. juil. 20, 2010 6:23 pm
Localisation : Vers-sur-lot (46)
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par pat46fr »

ok, je mets mais AVERTISSEMENT: c'est un truc de ma composition, actuellement ça récupère le décalage des deux heures d'été et comme tu dis faudrat voir le comportement au passage à l'heure d'hiver. Je sais pas du tout si ça marchera, si c'est pas bon, je m'y replongerai à ce moment là. Ya sans doute mieux comme solution mais j'avoue que j'ai du mal avec ces dates (6 mois que je me suis mis au PHP et SQL). Donc si quelqu'un a mieux, je suis pas jaloux, lol.
A toutes les lignes qui font appel à une date du style:
$LAST_HISTORYDAT_RECORD=(($date[1] -$DELPHI1970)*86400); //delphi/unix conversion
j'ai rajouté ça:
$saison = date('I',$LAST_HISTORYDAT_RECORD); //on recupere la valeur qui indique ete ou hiver
if ($saison ==1)
{
$LAST_HISTORYDAT_RECORD = $LAST_HISTORYDAT_RECORD -7200; // cas ete
}
else
{
$LAST_HISTORYDAT_RECORD = $LAST_HISTORYDAT_RECORD -3600; // cas hiver
}
Voilà, c'est tout. Si vous avez des observations, je suis preneur.
Pat
Station: WS3650, HeavyWeather3600 1.1, GraphWeather 2.O.312b (essai v3 mais soucis), XP SP2, données stockées automatiquement en BDD MySQL en local et sur le site avec scripts PHP fabrication maison.
Image
Avatar de l’utilisateur
pat46fr
Membre
Messages : 173
Inscription : mar. juil. 20, 2010 6:23 pm
Localisation : Vers-sur-lot (46)
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par pat46fr »

pat46fr a écrit :ok, je mets mais AVERTISSEMENT: c'est un truc de ma composition, actuellement ça récupère le décalage des deux heures d'été et comme tu dis faudrat voir le comportement au passage à l'heure d'hiver. Je sais pas du tout si ça marchera, si c'est pas bon, je m'y replongerai à ce moment là. Ya sans doute mieux comme solution mais j'avoue que j'ai du mal avec ces dates (6 mois que je me suis mis au PHP et SQL). Donc si quelqu'un a mieux, je suis pas jaloux, lol.
A toutes les lignes qui font appel à une date du style:
$LAST_HISTORYDAT_RECORD=(($date[1] -$DELPHI1970)*86400); //delphi/unix conversion
j'ai rajouté ça:
$saison = date('I',$LAST_HISTORYDAT_RECORD); //on recupere la valeur qui indique ete ou hiver
if ($saison ==1)
{
$LAST_HISTORYDAT_RECORD = $LAST_HISTORYDAT_RECORD -7200; // cas ete
}
else
{
$LAST_HISTORYDAT_RECORD = $LAST_HISTORYDAT_RECORD -3600; // cas hiver
}
Voilà, c'est tout. Si vous avez des observations, je suis preneur.
Je précise que je travaille sur une WS3650, les formats de fichiers history sont pas les mêmes mais pour un calcul de ce style pas grave. Si ya besoin, ça marchera quand même je pense puisque c'est le PHP qui modifie la valeur de départ.
Pat
Station: WS3650, HeavyWeather3600 1.1, GraphWeather 2.O.312b (essai v3 mais soucis), XP SP2, données stockées automatiquement en BDD MySQL en local et sur le site avec scripts PHP fabrication maison.
Image
Avatar de l’utilisateur
jturlier
Membre
Messages : 3149
Inscription : mar. août 22, 2006 8:38 am
Localisation : 34410 Sérignan - Languedoc
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par jturlier »

Bonsoir,
on devrait pouvoir simplifier un peu le code ci-dessus comme suit :
$saison = date('I',$LAST_HISTORYDAT_RECORD); //on recupere la valeur qui indique ete ou hiver
$LAST_HISTORYDAT_RECORD -= (3600 +($saison*3600)); // cas ete/hiver
A vérifier qd même !

Jean
Avatar de l’utilisateur
pat46fr
Membre
Messages : 173
Inscription : mar. juil. 20, 2010 6:23 pm
Localisation : Vers-sur-lot (46)
Contact :

Re: Demande tutoriel mysql avec ws2350

Message par pat46fr »

La modif est faite, c'est OK pour l'heure d'été, reste à attendre le passage à l'heure d'hiver et à croiser les doigts, lol.
Pat
Station: WS3650, HeavyWeather3600 1.1, GraphWeather 2.O.312b (essai v3 mais soucis), XP SP2, données stockées automatiquement en BDD MySQL en local et sur le site avec scripts PHP fabrication maison.
Image
Répondre