Tag état station Vantage

Forum destiné aux problèmes de Tags, recherche d’une fonction, d’un calcul, Tag qui parait ne pas fonctionner, du Tag et rien que du Tag !
Avatar du membre
clement104
participation 3
participation 3
Messages : 222
Enregistré le : 30 juil. 2007, 13:22
Localisation : Mélin, Belgique
Contact :

Re: Tag état station Vantage

Message par clement104 » 09 janv. 2011, 17:12

Ne faudrait-il pas alors faire en deux fois?

-1 élimination du "78"
-2 élimination du "12345" -> reste 6

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: Tag état station Vantage

Message par webmaster » 09 janv. 2011, 17:16

Cordialement

Rieux

gégé
participation 3
participation 3
Messages : 286
Enregistré le : 16 déc. 2007, 09:28
Localisation : Baladou 46600
Contact :

Re: Tag état station Vantage

Message par gégé » 09 janv. 2011, 17:31

Merci
Cordialement Gérard
http://meteo-baladou.com

Avatar du membre
clement104
participation 3
participation 3
Messages : 222
Enregistré le : 30 juil. 2007, 13:22
Localisation : Mélin, Belgique
Contact :

Re: Tag état station Vantage

Message par clement104 » 09 janv. 2011, 19:29

Bonsoir,

est-il normale que le tag %ws_batteryreceivvt% me donne 00000000 ?

EDIT: ah oui j'ai compris désolé, par contre qu'est-ce que le Davis Talk transmitter?
Modifié en dernier par clement104 le 09 janv. 2011, 19:31, modifié 1 fois.

Avatar du membre
vals
Participation 5
Participation 5
Messages : 833
Enregistré le : 13 déc. 2006, 20:27
Localisation : 69320 Feyzin
Contact :

Re: Tag état station Vantage

Message par vals » 09 janv. 2011, 19:31

C'est ce que j'ai aussi ici.
Image
Davis VantagePro2 + Wswin32 V2.96.10 + GraphWeather + ftp-uploader. Webcam.

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: Tag état station Vantage

Message par webmaster » 09 janv. 2011, 19:37

Oui tout à fait normal !
Bit 0 -> OK Bit 1 -> Défaut
Cordialement

Rieux

deule-climat
participation 3
participation 3
Messages : 201
Enregistré le : 04 nov. 2010, 13:31
Localisation : Deûlémont, Nord
Contact :

Re: Tag état station Vantage

Message par deule-climat » 09 janv. 2011, 19:40

Je comprends pas trop le PHP, alors je bidoulle. J'ai fait par une autre methode, peut-être un peu trop compliqué, il y avait surement plus simple, mais le but, c'est que cela fonctionne.

Voici le code modifié visible ici : http://www.deule-climat.net/etat.php
J'ai une batterie faible sur la station 3.

Code : Tout sélectionner

<!-- %customfile=etat.php% -->
<html>
<?php

#Batterie console
%alwaysseppoint_on%
$voltbat= '%ws_batteryvt%' ; 
$voltbat = str_replace('V', '', $voltbat); 
if ($voltbat<"4.63") {$affichage="Sur batterie (%ws_batteryvt%)";}
if ($voltbat>="4.63") {$affichage="Sur secteur (%ws_batteryvt%)";}

#Paquet réceptionnés
$tot= %ws_totalpacketsvt% ;
$miss= %ws_mispacketsvt% ;
$error= %ws_crcerrorsvt% ;
$nok= $miss+$error ;
$tot2 = $tot-$nok ;
$row= %ws_rowpacketsvt% ;
$resync= %ws_resyncvt% ;

#Batterie émetteur
$battid1= substr("%ws_batteryreceivvt%", 7, 1);
if ($battid1=="0") {$battid1pict="lights_green.gif";}
if ($battid1=="1") {$battid1pict="lights_red.gif";}
if ($battid1=="0") {$battid1stat="Batterie OK";}
if ($battid1=="1") {$battid1stat="Batterie HS";}
$battid2= substr("%ws_batteryreceivvt%", 6, 1);
if ($battid2=="0") {$battid2pict="lights_green.gif";}
if ($battid2=="1") {$battid2pict="lights_red.gif";}
if ($battid2=="0") {$battid2stat="Batterie OK";}
if ($battid2=="1") {$battid2stat="Batterie HS";}
$battid3= substr("%ws_batteryreceivvt%", 5, 1);
if ($battid3=="0") {$battid3pict="lights_green.gif";}
if ($battid3=="1") {$battid3pict="lights_red.gif";}
if ($battid3=="0") {$battid3stat="Batterie OK";}
if ($battid3=="1") {$battid3stat="Batterie HS";}

?>

%alwayssepcomma_on%

<head>
<style type="text/css">
<!--
body {
   background-color: #FFFFFF;
}
.Style4 {font-size: 12px}
-->
</style>
</head>
<body>
<div id="text">
<table width="500" border="1">
  <tr>
    <td><div align="center">Etat des capteurs<br>le %longdate% à %ws_time%</div></td>
  </tr>
</table>
<table width="500" border="1">
  <tr>
    <td>Date du firmware : </td>
    <td>%ws_firmwarevt%</td>
  </tr>
  <tr>
  <td>Tension de la batterie (console) : </td>
  <td><?php echo "$affichage"; ?></td>
  </tr>
  <tr>
  <td>Qualité de réception : </td>
  <td>%ws_receiveprozvt%</td></tr>
  <tr>
  <td>Paquets de bonnes qualités* : </td>
  <td><?php echo "$tot2" ; ?> / <?php echo "$tot"; ?></td></tr>
  <tr>
  <td>Paquets consécutifs de bonnes qualités : </td>
  <td><?php echo "$row" ; ?></td></tr>
  <tr>
  <td>Nombre de resynchronisation : </td>
  <td><?php echo "$resync" ; ?></td></tr>
</table>
<table width="500" border="1">
<tr>
<td style="width: 220px">Réception ISS</td>
<td><img border="0" src="<?php echo "$battid1pict"; ?>"></td>
<td><?php echo "$battid1stat"; ?></td>
<td>Nouvelle batterie le:</br>10/10/2010</td>
</tr>
<tr>
<td style="width: 220px">Réception déport anémomètre</td>
<td><img border="0" src="<?php echo "$battid2pict"; ?>"></td>
<td><?php echo "$battid2stat"; ?></td>
<td>Nouvelle batterie le: </br> 10/10/2010</td>
</tr>
<tr>
<td style="width: 220px">Réception station température et humidité du sol</td>
<td><img border="0" src="<?php echo "$battid3pict"; ?>"></td>
<td><?php echo "$battid3stat"; ?></td>
<td>Nouvelle batterie le:</br>01/01/2011</td>
</tr></table>
<span class="Style4"></br>
*paquets total - (paquets manqu&eacute;s + paquets avec erreur)</span></div>
</body>
</html>

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: Tag état station Vantage

Message par webmaster » 09 janv. 2011, 19:43

deule-climat a écrit :Je comprends pas trop le PHP, alors je bidoulle. J'ai fait par une autre methode, peut-être un peu trop compliqué, il y avait surement plus simple, mais le but, c'est que cela fonctionne.
Alors là je rêve :geek:
Cordialement

Rieux

deule-climat
participation 3
participation 3
Messages : 201
Enregistré le : 04 nov. 2010, 13:31
Localisation : Deûlémont, Nord
Contact :

Re: Tag état station Vantage

Message par deule-climat » 09 janv. 2011, 19:55

C'est plutôt correct ou pas ?

Il faut faire attention aussi que si 2 piles sont HS que le script fonctionne bien.

Si on met une condition sur 0001 pour une pile HS sur l'ISS, cela ne fonctionnera pas si une autre pile tombe en panne. Le 0001 sera remplacé par 0101 par exemple, donc ca ne marchera pas.

Avec le code ci-dessus, il n'y a pas de problème car les 8 chiffres ont été coupés en fonction de la sonde.
Donc pour l'émetteur n°4, il faudra ajouter substr("%ws_batteryreceivvt%", 4, 1). Exemple avec les chiffres : 0000-0-000
Donc pour l'émetteur n°5, il faudra ajouter substr("%ws_batteryreceivvt%", 3, 1). Exemple avec les chiffres : 000-0-0000
etc...

Sur ton exemple Rieux, je pense que si 2 piles sont HS, cela ne fonctionne pas. A confirmer.

deule-climat
participation 3
participation 3
Messages : 201
Enregistré le : 04 nov. 2010, 13:31
Localisation : Deûlémont, Nord
Contact :

Re: Tag état station Vantage

Message par deule-climat » 09 janv. 2011, 20:07

Le code de Rieux fonctionne même avec plusieurs piles HS. Il a tout simplement coupé les Bits Batterie plusieurs fois et utilisé les fonctions de stockage rappel mémoire.

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: Tag état station Vantage

Message par webmaster » 09 janv. 2011, 20:13

deule-climat a écrit :C'est plutôt correct ou pas ?
Oui ton code est bon, mais tu dis te prendre la tête avec du PHP alors qu'il n'est pas obligatoire pour un affichage équivalent !
Il y a des choses que WsWin ne sait pas faire, mais là pas besoin de chercher ailleurs.
Cordialement

Rieux

deule-climat
participation 3
participation 3
Messages : 201
Enregistré le : 04 nov. 2010, 13:31
Localisation : Deûlémont, Nord
Contact :

Re: Tag état station Vantage

Message par deule-climat » 09 janv. 2011, 20:47

C'est vrai, tu as raison. Personnellement, je préfère utiliser le PHP car il y a des fonctions non présente avec Wswin, mais si on ne veut pas trop se prendre la tête, le mieux c'est d'utiliser toute les fonctionnalités du logiciel.
La methode wswin est très bien, mais j'ai mis du temps à comprendre quand même.

En tout cas, merci de ton aide et du tutoriel que tu as créé.

Avatar du membre
webmaster
Site Admin
Site Admin
Messages : 2611
Enregistré le : 12 déc. 2006, 20:54
Localisation : Rieux 51 FRANCE
Contact :

Re: Tag état station Vantage

Message par webmaster » 10 janv. 2011, 10:24

Bonjour,

Il y a des choses plus simple en PHP c'est évident !
Une grosse lacune de WsWin est pour moi la comparaison, un équivalent de IF, ELSEIF et ELSE serait du pure bonheur....
Une petite boucle WHILE également soyons fou !

Mais quand une chose est réalisable avec WsWin je préfère privilégier cette solution, même si des fois je me prends vraiment la tête pour pas grand chose.

J'ai mis dans l'aide un code plus commun fonctionnant pour tout le monde, je remets donc le code précédent ici.

Code : Tout sélectionner

%ws_setmem[4]=%ws_cutstr=1~5~%ws_batteryreceivvt%%%
%ws_setmem[1]=%ws_cutstr=1~2~%ws_getmem[4]%%%
%ws_setmem[3]=%ws_cutstr=-2~2~%ws_getmem[4]%%%
%ws_setmem[5]=%ws_cutstr=1~1~%ws_getmem[4]%%%
%ws_setmem[2]=%ws_cutstr=-1~1~%ws_getmem[5]%%%

<table>
<tr>
<td>Date du firmware</td>
<td colspan="2">%ws_firmwarevt%</td>
<td colspan="2">Pile des stations&nbsp;auxiliaires</td>
</tr>
<tr>
<td>Tension batterie de la console</td>
<td colspan="2">%unit_off%%ws_compare[2]=%ws_batteryvt%~4,55~Sur secteur~%ws_batteryvt% V%%unit_on%</td>
<td colspan="2"><center>Dates</center></td>
</tr>
<tr>
<td>Qualité de réception %</td>
<td colspan="2">%ws_receiveprozvt%</td>
<td >Anciennes</td>
<td >Nouvelles</td>
</tr>
<tr>
<td>Station ISS</td>
<td><img border="0"%ws_compare[3]=%ws_getmem[1]%~0~src="lights_green.gif"~src="../mesures/lights_red.gif"%></td>
<td>%ws_compare[3]=%ws_getmem[1]%~0~Batterie OK~Batterie HS ou faible%</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Station anémo</td>
<td><img border="0" %ws_compare[3]=%ws_getmem[2]%~0~src="lights_green.gif"~src="../mesures/lights_red.gif"%></td>
<td>%ws_compare[3]=%ws_getmem[2]%~0~Batterie OK~Batterie HS ou faible%</td>
<td></td>
<td></td>
</tr>
<tr>
<td>Station sol</td>
<td><img border="0" %ws_compare[3]=%ws_getmem[3]%~0~src="lights_green.gif"~src="../mesures/lights_red.gif"%></td>
<td>%ws_compare[3]=%ws_getmem[3]%~0~Batterie OK~Batterie HS ou faible%</td>
<td></td>
<td></td>
</tr>
</table> 
Cordialement

Rieux

Avatar du membre
clement104
participation 3
participation 3
Messages : 222
Enregistré le : 30 juil. 2007, 13:22
Localisation : Mélin, Belgique
Contact :

Re: Tag état station Vantage

Message par clement104 » 10 janv. 2011, 17:38

webmaster a écrit :Une grosse lacune de WsWin est pour moi la comparaison, un équivalent de IF, ELSEIF et ELSE serait du pure bonheur....
Une petite boucle WHILE également soyons fou !
J'avoue que ce serait génial.

En tout cas, merci pour ton bout de code :Panneau-Merci:

deule-climat
participation 3
participation 3
Messages : 201
Enregistré le : 04 nov. 2010, 13:31
Localisation : Deûlémont, Nord
Contact :

Re: Tag état station Vantage

Message par deule-climat » 27 févr. 2011, 09:03

Bonjour,
Je viens de remarquer une incohérance : Au vu du script initial, si la console est sur secteur alors la tension est supérieur à 4,63 V. Or, c'est faux et c'est uniquement valable avec des piles entierement chargées. Si les piles ont une tension de 3,6 Volt, alors sur secteur on a environ 3,65 volt.

J'ai modifié donc le script visible ici : http://www.deule-climat.net/etat.php
Pour info, "console batterie faible" s'affiche à l'écran quand la tension est inférieur à 3,5 Volts.

> 4.63 V = 100 % sur secteur
4.63 à 4.54 = 100 %
4.53 à 4.44 = 90 %
4.43 à 4.34 = 80 %
4.33 à 4.24 = 70 %
4.23 à 4.14 = 60 %
4.13 à 4.04 = 50 %
4.03 à 3.94 = 40 %
3.93 à 3.84 = 30 %
3.83 à 3.74 = 20 %
3.73 à 3.64 = 10 %
3.63 à 3.50 = 0 %
<3,5 V = Piles HS

Voici le code modifié :

Code : Tout sélectionner

<!-- %customfile=etat.php% -->
<html>
<?php

#Batterie console
%alwaysseppoint_on%
$voltbat= '%ws_batteryvt%' ; 
$voltbat = str_replace('V', '', $voltbat); 
if ($voltbat<"4.63") {$affichage="%ws_batteryvt%";}
if ($voltbat>="4.63") {$affichage="%ws_batteryvt% (Sur secteur)";}

if ($voltbat<"4.63") {$battconspict="images/batt/ac100.gif";}
if ($voltbat<"4.63" AND $voltbat>"4.54") {$battconspict="images/batt/100.gif";}
if ($voltbat<"4.53" AND $voltbat>"4.44") {$battconspict="images/batt/90.gif";}
if ($voltbat<"4.43" AND $voltbat>"4.34") {$battconspict="images/batt/80.gif";}
if ($voltbat<"4.33" AND $voltbat>"4.24") {$battconspict="images/batt/70.gif";}
if ($voltbat<"4.23" AND $voltbat>"4.14") {$battconspict="images/batt/60.gif";}
if ($voltbat<"4.13" AND $voltbat>"4.04") {$battconspict="images/batt/50.gif";}
if ($voltbat<"4.03" AND $voltbat>"3.94") {$battconspict="images/batt/40.gif";}
if ($voltbat<"3.93" AND $voltbat>"3.84") {$battconspict="images/batt/30.gif";}
if ($voltbat<"3.83" AND $voltbat>"3.74") {$battconspict="images/batt/20.gif";}
if ($voltbat<"3.73" AND $voltbat>"3.64") {$battconspict="images/batt/10.gif";}
if ($voltbat<"3.63" AND $voltbat>"3.50") {$battconspict="images/batt/0.gif";}
if ($voltbat<"3.50") {$battconspict="images/batt/none.gif";}

if ($voltbat<"4.63") {$battconsstat="100 %";}
if ($voltbat<"4.63" AND $voltbat>"4.54") {$battconsstat="100 %";}
if ($voltbat<"4.53" AND $voltbat>"4.44") {$battconsstat="90 %";}
if ($voltbat<"4.43" AND $voltbat>"4.34") {$battconsstat="80 %";}
if ($voltbat<"4.33" AND $voltbat>"4.24") {$battconsstat="70 %";}
if ($voltbat<"4.23" AND $voltbat>"4.14") {$battconsstat="60 %";}
if ($voltbat<"4.13" AND $voltbat>"4.04") {$battconsstat="50 %";}
if ($voltbat<"4.03" AND $voltbat>"3.94") {$battconsstat="40 %";}
if ($voltbat<"3.93" AND $voltbat>"3.84") {$battconsstat="30 %";}
if ($voltbat<"3.83" AND $voltbat>"3.74") {$battconsstat="20 %";}
if ($voltbat<"3.73" AND $voltbat>"3.64") {$battconsstat="10 %";}
if ($voltbat<"3.63" AND $voltbat>"3.50") {$battconsstat="0 %";}
if ($voltbat<"3.50") {$battconsstat="Batterie HS";}

#Paquet réceptionnés
$tot= %ws_totalpacketsvt% ;
$miss= %ws_mispacketsvt% ;
$error= %ws_crcerrorsvt% ;
$nok= $miss+$error ;
$tot2 = $tot-$nok ;
$row= %ws_rowpacketsvt% ;
$resync= %ws_resyncvt% ;

#Batterie émetteur
$battid1= substr("%ws_batteryreceivvt%", 7, 1);
if ($battid1=="0") {$battid1pict="lights_green.gif";}
if ($battid1=="1") {$battid1pict="lights_red.gif";}
if ($battid1=="0") {$battid1stat="Batterie OK";}
if ($battid1=="1") {$battid1stat="Batterie HS";}
$battid2= substr("%ws_batteryreceivvt%", 6, 1);
if ($battid2=="0") {$battid2pict="lights_green.gif";}
if ($battid2=="1") {$battid2pict="lights_red.gif";}
if ($battid2=="0") {$battid2stat="Batterie OK";}
if ($battid2=="1") {$battid2stat="Batterie HS";}
$battid3= substr("%ws_batteryreceivvt%", 5, 1);
if ($battid3=="0") {$battid3pict="lights_green.gif";}
if ($battid3=="1") {$battid3pict="lights_red.gif";}
if ($battid3=="0") {$battid3stat="Batterie OK";}
if ($battid3=="1") {$battid3stat="Batterie HS";}

?>

%alwayssepcomma_on%

<head>
<style type="text/css">
<!--
body {
   background-color: #FFFFFF;
}
.Style4 {font-size: 12px}
-->
</style>
</head>
<body>
<div id="text">
<table width="500" border="1">
  <tr>
    <td><div align="center"><strong>Etat des capteurs et de la console</strong><br>le %longdate% à %ws_time%</div></td>
  </tr>
</table>
<table width="500" border="1">
  <tr>
    <td>Date du firmware : </td>
    <td>%ws_firmwarevt%</td>
  </tr>
  <tr>
  <td>Tension de la batterie (console) : </td>
  <td><?php echo "$affichage"; ?></td>
  </tr>
  <tr>
  <td>Qualité de réception : </td>
  <td>%ws_receiveprozvt%</td></tr>
  <tr>
  <td>Paquets de bonnes qualités* : </td>
  <td><?php echo "$tot2" ; ?> / <?php echo "$tot"; ?></td></tr>
  <tr>
  <td>Paquets consécutifs de bonnes qualités : </td>
  <td><?php echo "$row" ; ?></td></tr>
  <tr>
  <td>Nombre de resynchronisation : </td>
  <td><?php echo "$resync" ; ?></td></tr>
</table>
<table width="500" border="1">
<tr>
<td style="width: 220px">Statut :<br>&nbsp;&nbsp;Console</td>
<td align="center"><img border="0" src="<?php echo "$battconspict"; ?>" height="32" width="27"></td>
<td><?php echo "$battconsstat"; ?></td>
<td>Nouvelle batterie le :</br>&nbsp;&nbsp;10/10/2010</td>
</tr>
<tr>
<td style="width: 220px">Statut :<br>&nbsp;&nbsp;ISS</td>
<td align="center"><img border="0" src="<?php echo "$battid1pict"; ?>"></td>
<td><?php echo "$battid1stat"; ?></td>
<td>Nouvelle batterie le :</br>&nbsp;&nbsp;10/10/2010</td>
</tr>
<tr>
<td style="width: 220px">Statut :<br>&nbsp;&nbsp;Station déport anémomètre</td>
<td align="center"><img border="0" src="<?php echo "$battid2pict"; ?>"></td>
<td><?php echo "$battid2stat"; ?></td>
<td>Nouvelle batterie le : </br>&nbsp;&nbsp;10/10/2010</td>
</tr>
<tr>
<td style="width: 220px">Statut :<br>&nbsp;&nbsp;Station temp. et hum. du sol</td>
<td align="center"><img border="0" src="<?php echo "$battid3pict"; ?>"></td>
<td><?php echo "$battid3stat"; ?></td>
<td>Nouvelle batterie le :</br>&nbsp;&nbsp;01/01/2011</td>
</tr></table>
<span class="Style4"></br>
*paquets total - (paquets manqu&eacute;s + paquets avec erreur)</span></div>
</body>
</html>

Répondre