Forum des Objets Communicants et Solutions pour les Libérer...


 
AccueilAccueil  GalerieGalerie  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

Partagez
 

 [php] script de meteo

Aller en bas 
AuteurMessage
NabaZly
Lapin nain
Lapin nain


Localisation : Pas Loin ?
Nbr de messages : 8
Carottes : 4187

[php] script de meteo Empty
MessageSujet: [php] script de meteo   [php] script de meteo Icon_minitimeJeu 13 Déc 2007 - 22:29

bjour à tous les lapins et lapines..

voila j'ai fait mon ptit script en php qui permet de faire causer un peu mon lapin et du coup de me donner la meteo...

avantage par rapport a celui du site violet, ben je le met dans les taches planifiées de mon serveurs et comme ca il me donne toutes les infos quand je me leve, et donc un peu plus d'infos car basé sur le site www.weather.com
en plus il me donne la température de chez moi au passage. m'enfin ca c'est autre chose.

bon si des fois ca interesse quelqu'un voici :

d'abord installer php 5 (surtout la V5) pour windows (moi j'ai pris wamp)

ensuite il y a 3 choses

1 fichier curl.exe
1 fichier bat
1 fichier php

dans le bat j'ai mis ca :

edit : voir plus bas dans le mail pour un meilleur code nabzlol
Code:
C:\Batch\curl.exe "http://xoap.weather.com/weather/local/FRXX0080?cc=*&dayf=1&par=0&prod=xoap&key=0&unit=m&locid=0" > C:\Batch\FRXX0080.xml

C:\wamp\bin\php\php5.2.5\php.exe C:\Batch\meteo.php

sachant que FRXX0080, c'est le code de ma ville pour la meteo... pour connaitre son code, il faut regarder sur le site weather.com

ensuite le fichier meteo.php

Code:
<?php

$token = "******";
$serial = "******";
$ville = "FRXX0080";
$file="c:\Capteur_0.txt";
$temp_int = trim(fread(fopen($file, "r"), filesize($file)));

if (file_exists('FRXX0080.xml')) {

   $xml = simplexml_load_file('FRXX0080.xml');
 
 $temp_ext = $xml->cc->tmp;

 $etat = $xml->cc->t;

 $temp_max = $xml->dayf->day->hi;

 $temp_min = $xml->dayf->day->low;
 
 $temp_moy = ($temp_max+$temp_moy)/2;

 $precip = $xml->dayf->day[0]->part->ppcp;

// traduction
$temp_int = str_replace(".", ",", "$temp_int");
$temp_int = str_replace(" ", "", "$temp_int");
$etat = trim(str_replace("Mostly Sunny", "trai+Ensoleillyai", $etat));
$etat = trim(str_replace("Mostly Cloudy", "trai+nuageu", $etat));
$etat = trim(str_replace("Partly Sunny", "partiellement+Ensoleillyai", $etat));
$etat = trim(str_replace("Partly Cloudy", "partiellement+nuageu", $etat));
$etat = trim(str_replace("Clear", "claire", $etat));
$etat = trim(str_replace("Fog", "brumeu", $etat));
$etat = trim(str_replace("Fog late", "laigerement+brumeu", $etat));
$etat = trim(str_replace("Rain", "pluvieux", $etat));
$etat = trim(str_replace("and Freezing Rain", "+avec+pluie+verglassante", $etat));
$etat = trim(str_replace("Snow", "neigeu", $etat));
$etat = trim(str_replace("Light", "laigerement+", $etat));
$etat = trim(str_replace("Showers", "pluvieu", $etat));





$texte = "Aujourd'hui+il+fait+actuellement+.+$temp_ext+degrai+.+le+temps+est+$etat+.+Il+fera+environ+$temp_moy+degrai+sur+la+journai+avec+$precip+pour+100+de+chance+de+pluie+.+bonne+journai";

$texte2 = "Bonjour+Sylvain+.+chez+toi+il+fait+.+$temp_int+degrai+.+.+";

$tts = "$texte2$texte";

$url = "http://api.nabaztag.com/vl/FR/api.jsp?sn=".$serial."&token=".$token."&ttlive=300&speed=80&voice=claire22s&tts=".$tts;

echo "$url";


$fd22 = fopen($url, "r");




} else {
    exit('Failed to open FRXX0080.xml');
}
?>

je ne suis pas du tout devellopeur, alors j'imagine que mon code ressemble a rien. mais chez moi il fonctionne.
Attention, dedans il m'indique la temperature de chez moi... faudra donc virer ca pour ceux qu'il veule installer ce script chez eux.

Attention2 : je n'ai pas finit la traduction des "etats meteo", type nuageux, pluie, neige.. j'ai pas tous les mots. je les mets au fur est a mesure.

Attention3 : sauf erreur, ce ne sont pas des grosses fautes d'orthographes, mais j'ai du ruser pour la reconnaissance vocale. si non c'etait pas beau..

et en dernier le fichier curl.exe qui permet de récuper le fichier xml de la meteo en local sur le pc. je pense que dans le code php on doit pouvoir lui faire lire la page xml sur le site directement, mais je n'ai pas trouvé comment..

pour les feignants, un ptit ZIP avec tout dedans.

voila j'espere que ca plaira à quelqu'un.


Dernière édition par le Ven 4 Jan 2008 - 10:18, édité 1 fois
Revenir en haut Aller en bas
NaBoByZ
Nabazteur Courtois
Nabazteur Courtois
NaBoByZ

Localisation : Btx
Nabaztag : NaBoByZ
Nbr de messages : 4349
Carottes : 4625

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeMar 18 Déc 2007 - 12:53

Aucunes réponses de développeur ici, mais cela me semble plutôt interressant ! non ?

Bravo en tout cas !
Revenir en haut Aller en bas
BigPanda
Kryptonite Nabz
Kryptonite Nabz
BigPanda

Age : 36
Localisation : Bruxelles
Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3)
Nbr de messages : 7127
Carottes : 11329

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeMar 18 Déc 2007 - 13:18

Hello yellownabzsmile
Personnellement, je comprends pas trop l'utilité étant donné que le lapin donne déjà la météo tout seul mais soit yellownabzwink

Sinon, pour l'appel à la page directement, tu peux utiliser curl en php (http://be.php.net/manual/fr/ref.curl.php)

Pour la partie traduction, il doit y avoir plus propre comme manière de faire (ne serait-ce que faire un tableau "avant->après" et boucler dessus) yellownabzwink

Par contre merci yellownabzsmile Je connaissais pas SimpleXML et je sens qu'il va un peu me simplifier la vie yellownabzwink (j'aime aps le Dom ^^; )

_____________________________



Compagnie de reconstitution historique (essentiellement médiévale) en belgique :
Tartes et Bastons ASBL
[php] script de meteo Bigpna11[php] script de meteo Nabzbu11[php] script de meteo Blason[php] script de meteo Nabzbu11[php] script de meteo Bigpna11

[php] script de meteo Socadana
(Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi yellownabzwink)
Revenir en haut Aller en bas
http://www.tartesetbastons.be
NabaZly
Lapin nain
Lapin nain


Localisation : Pas Loin ?
Nbr de messages : 8
Carottes : 4187

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeDim 30 Déc 2007 - 21:48

content que ca puisse servir,

pour le code pas propre, j'en doute pas un instant, je fais avec mes connaissances.. yellownabzwink

si non pour moi l'interet etait d'y intergré la température de chez moi en plus de la météo de dehors et de la coupler à ce surper soft : girder avec ce capteur et hop depuis ma télécommande je peux lancer la diction meteo + temp de chez moi. voila tout.
Revenir en haut Aller en bas
BillTag
Lapin nain
Lapin nain
BillTag

Localisation : Lens
Nbr de messages : 29
Carottes : 4165

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeLun 31 Déc 2007 - 11:43

Bonjour,

J'ai un soucis la :

Warning: fopen(c:\Capteur_0.txt) [function.fopen]: failed to open stream: No such file or directory in C:\wamp\www\meteo.php on line 7

Warning: filesize() [function.filesize]: stat failed for c:\Capteur_0.txt in C:\wamp\www\meteo.php on line 7
Revenir en haut Aller en bas
BigPanda
Kryptonite Nabz
Kryptonite Nabz
BigPanda

Age : 36
Localisation : Bruxelles
Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3)
Nbr de messages : 7127
Carottes : 11329

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeLun 31 Déc 2007 - 12:17

Ton fichier C:\Capteur_0.txt n'existe pas.
Ce qui n'est pas étonnant vu que c'est visiblement un fichier généré par le capteur de température intérieure de NabaZly...

Comme ça, ça marchera normalement mieux yellownabzwink

Code:

<?php

$token = "******";
$serial = "******";
$ville = "FRXX0080";

if (file_exists('FRXX0080.xml'))
{
  $xml = simplexml_load_file('FRXX0080.xml');
  $temp_ext = $xml->cc->tmp;
  $etat = $xml->cc->t;
  $temp_max = $xml->dayf->day->hi;
  $temp_min = $xml->dayf->day->low;
  $temp_moy = ($temp_max+$temp_moy)/2;
  $precip = $xml->dayf->day[0]->part->ppcp;

  // traduction
  $temp_int = str_replace(".", ",", "$temp_int");
  $temp_int = str_replace(" ", "", "$temp_int");
  $etat = trim(str_replace("Mostly Sunny", "trai+Ensoleillyai", $etat));
  $etat = trim(str_replace("Mostly Cloudy", "trai+nuageu", $etat));
  $etat = trim(str_replace("Partly Sunny", "partiellement+Ensoleillyai", $etat));
  $etat = trim(str_replace("Partly Cloudy", "partiellement+nuageu", $etat));
  $etat = trim(str_replace("Clear", "claire", $etat));
  $etat = trim(str_replace("Fog", "brumeu", $etat));
  $etat = trim(str_replace("Fog late", "laigerement+brumeu", $etat));
  $etat = trim(str_replace("Rain", "pluvieux", $etat));
  $etat = trim(str_replace("and Freezing Rain", "+avec+pluie+verglassante", $etat));
  $etat = trim(str_replace("Snow", "neigeu", $etat));
  $etat = trim(str_replace("Light", "laigerement+", $etat));
  $etat = trim(str_replace("Showers", "pluvieu", $etat));

  $tts = "Aujourd'hui+il+fait+actuellement+.+$temp_ext+degrai+.+le+temps+est+$etat+.+Il+fera+environ+$temp_moy+degrai+sur+la+journai+avec+$precip+pour+100+de+chance+de+pluie+.+bonne+journai";

  $url = "http://api.nabaztag.com/vl/FR/api.jsp?sn=".$serial."&token=".$token."&ttlive=300&speed=80&voice=claire22s&tts=".$tts;

  echo "$url";

  $fd22 = fopen($url, "r");
}
else
  exit('Failed to open FRXX0080.xml');
?>

_____________________________



Compagnie de reconstitution historique (essentiellement médiévale) en belgique :
Tartes et Bastons ASBL
[php] script de meteo Bigpna11[php] script de meteo Nabzbu11[php] script de meteo Blason[php] script de meteo Nabzbu11[php] script de meteo Bigpna11

[php] script de meteo Socadana
(Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi yellownabzwink)
Revenir en haut Aller en bas
http://www.tartesetbastons.be
BillTag
Lapin nain
Lapin nain
BillTag

Localisation : Lens
Nbr de messages : 29
Carottes : 4165

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeLun 31 Déc 2007 - 15:38

Ca marche yellownabzsmile

Merci yellownabzsmile
Revenir en haut Aller en bas
BillTag
Lapin nain
Lapin nain
BillTag

Localisation : Lens
Nbr de messages : 29
Carottes : 4165

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeLun 31 Déc 2007 - 15:42

J'ai rajouter ca :

$etat = trim(str_replace("Fair", "nuageu", $etat));
Revenir en haut Aller en bas
BillTag
Lapin nain
Lapin nain
BillTag

Localisation : Lens
Nbr de messages : 29
Carottes : 4165

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeLun 31 Déc 2007 - 19:17

Bon j'adore ton script, je prefere cette meteo que celle de violet

Ca pourrait etre bien d'avoir la meteo pour plusieurs jours ...

Merrci yellownabzsmile
Revenir en haut Aller en bas
NabaZly
Lapin nain
Lapin nain


Localisation : Pas Loin ?
Nbr de messages : 8
Carottes : 4187

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeVen 4 Jan 2008 - 10:12

Merci BigPanda pour la modif, effectivment le capteur0_txt, c'est la temperature de chez moi..


voici le meme code mais
- sans la temp de chez moi
- avec le lendemain. annoncé seulement si il est plus de 18h.
- plus besoin du curl.exe
- plus besoin d'ecrire le texte avec des + partout.
- update de la "traduction"
- suppression de la temp moyenne..

Code:
<?php

function enleve_accent($chaine){
  $chaine = strtr($chaine,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",  "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
  return $chaine;
  }

$heure = date("Hi");

$token = "*****";
$serial = "******";

$urlweather = "http://xoap.weather.com/weather/local/FRXX0080?cc=*&dayf=2&par=0&prod=xoap&key=0&unit=m&locid=0";

 $xml = simplexml_load_file($urlweather);
 
 $temp_ext = $xml->cc->tmp;

 $etat = $xml->cc->t;

 $temp_max = $xml->dayf->day->hi;

 $temp_min = $xml->dayf->day->low;
 
 $temp_moy = ($temp_max+$temp_moy)/2;

 $precip = $xml->dayf->day[0]->part->ppcp;


//lendemain

 $temp_ext_n = $xml->dayf->day[1]->hi;

 $etat_n = $xml->dayf->day[1]->part->t;

// traduction
$temp_int = str_replace(".", ",", "$temp_int");
$temp_moy = str_replace(".", ",", "$temp_moy");
$temp_int = str_replace(" ", "", "$temp_int");
$etat = trim(str_replace("Mostly Sunny", "trai Ensoleillyai", $etat));
$etat = trim(str_replace("Mostly Cloudy", "trai nuageu", $etat));
$etat = trim(str_replace("Partly Sunny", "partiellement Ensoleillyai", $etat));
$etat = trim(str_replace("Partly Cloudy", "partiellement nuageu", $etat));
$etat = trim(str_replace("Sunny", "Ensoleillyai", $etat));
$etat = trim(str_replace("Light Rain and Freezing Rain", "petite pluie et pluie verglassante", $etat));
$etat = trim(str_replace("Clear", "claire", $etat));
$etat = trim(str_replace("Foggy", "brumeu", $etat));
$etat = trim(str_replace("Fog late", "laigerement brumeu", $etat));
$etat = trim(str_replace("Fog", "brumeu", $etat));
$etat = trim(str_replace("and Freezing Rain", "avec pluie verglassante", $etat));
$etat = trim(str_replace("Snow Showers", " avec neige verglassante", $etat));
$etat = trim(str_replace("Snow", "neigeu", $etat));
$etat = trim(str_replace("Rain", "pluvieu", $etat));
$etat = trim(str_replace("Light", "laigerement+", $etat));
$etat = trim(str_replace("Showers", "pluvieu", $etat));
$etat = trim(str_replace("Fair", "clair", $etat));
$etat = trim(str_replace("Cloudy", "nuageu", $etat));


//traduction lendemain
$etat_n  = str_replace("/", "et", "$etat_n ");
$etat_n = trim(str_replace("AM", " ", $etat_n));
$etat_n = trim(str_replace("Mostly Sunny", "trai Ensoleillyai", $etat_n));
$etat_n = trim(str_replace("Mostly Cloudy", "trai nuageu", $etat_n));
$etat_n = trim(str_replace("Partly Sunny", "partiellement Ensoleillyai", $etat_n));
$etat_n = trim(str_replace("Partly Cloudy", "partiellement nuageu", $etat_n));
$etat_n = trim(str_replace("Sunny", "Ensoleillyai", $etat_n));
$etat_n = trim(str_replace("Clear", "claire", $etat_n));
$etat_n = trim(str_replace("Foggy", "brumeu", $etat_n));
$etat_n = trim(str_replace("Fog late", "laigerement brumeu", $etat_n));
$etat_n = trim(str_replace("Fog", "brumeu", $etat_n));
$etat_n = trim(str_replace("and Freezing Rain", "avec pluie verglassante", $etat_n));
$etat_n = trim(str_replace("Snow Showers", "neige verglassante", $etat_n));
$etat_n = trim(str_replace("Snow", "neigeu", $etat_n));
$etat_n = trim(str_replace("Rain", "pluvieu", $etat_n));
$etat_n = trim(str_replace("and Freezing Rain", "+avec+pluie+verglassante", $etat_n));
$etat_n = trim(str_replace("Light", "laigerement+", $etat_n));
$etat_n = trim(str_replace("Showers", "pluvieu", $etat_n));
$etat_n = trim(str_replace("Fair", "clair", $etat_n));
$etat_n = trim(str_replace("Cloudy", "nuageu", $etat_n));


if ($heure < 1800) { 

$texte = "Aujourd'hui il fait actuellement $temp_ext degrai . . le temps est $etat avec $precip pour 100 de chance de pluie .";

}
else
{

$texte = "Aujourd'hui il fait actuellement $temp_ext degrai . . le temps est $etat avec $precip pour 100 de chance de pluie . Demain il fera environ $temp_ext_n degrai et un temps $etat_n .";


}

$tts = "$texte";
$tts = trim(str_replace(" ", "+", $tts));

$url = "http://api.nabaztag.com/vl/FR/api.jsp?sn=".$serial."&token=".$token."&ttlive=500&speed=80&voice=claire22s&tts=".$tts;

$fd22 = fopen($url, "r");

echo "<center>";
echo "<br>";
echo "$texte";
echo "<br>";
echo "</center>";

?>
Revenir en haut Aller en bas
Teka
Bronze Nabz
Bronze Nabz
Teka

Age : 36
Localisation : Dijon, France
Nabaztag : Ksper
Nbr de messages : 197
Carottes : 4158

[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitimeVen 4 Jan 2008 - 18:13

Impressionnant mais je n'arriverai pas à le reproduire ^
Revenir en haut Aller en bas
http://teka.over-blog.org
Contenu sponsorisé




[php] script de meteo Empty
MessageSujet: Re: [php] script de meteo   [php] script de meteo Icon_minitime

Revenir en haut Aller en bas
 
[php] script de meteo
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» NabazParis : le script des lapins de Paris
» script creation fichier rss avec nouveau mail
» [En cours] Exécuter un script php par webcron aléatoirement toutes les demi-heures
» Pbm meteo canadienne
» Juste la meteo ...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum des Objets Communicants et Solutions pour les Libérer... :: II. Nabaztag, Karotz, mir:ror, Dal:Dal (Violet Object Operating System) :: L'univers de Nabaztag :: Archives :: API-
Sauter vers: