PARTAGE prévisions nombres d'heures de soleil sur 7 jours Script Python3

Tags: #<Tag:0x00007f38507e7658> #<Tag:0x00007f38507e7568>

Bonjour à tous.

Vous avez pour beaucoup déjà des informations Méteo dans vos jeedom

Je vous propose ici de compléter avec une information qui n’est pas dans tous les site de Méteo.

C’est la prévision du nombre d’heures de soleil sur 7 jours.

Ce script fait donc référence à Méteo-Blue :

https://www.meteoblue.com/fr/meteo/semaine/nancy_france_2990999

Bien sur il vous faudra choisir votre ville et utiliser le lien correspondant

Les informations que nous allons récupérer sont celles entourées en rouge :

meteobleu

Passons aux choses sérieuses le script python allez on va faire très court …

#! /usr/bin/env python3
import requests
from sys import argv
from bs4 import BeautifulSoup
res = requests.get(argv[2])
soupe=BeautifulSoup(res.content, "html.parser")
print(int(soupe.find_all(class_ = "tab_sun")[int(argv[1])].text[62:64]), end = '')

Alors @Domotech tu vois c’est simple … :wink:
Bon ce script a 2 paramètres qu’il faut lui donner :
Le premier est un nombre de 0 à 6
0 c’est aujourd’hui
1 c’est demain
2 c’est dans 2 jours

6 c’est dans 6 jours

Le deuxième est l’adresse méteo blue correspondant à la ville dont vous voulez l’information.

Capture d’écran du 2020-05-06 10-48-18

Dans la recherche indiquez votre ville puis recopiez le contenu de la barre d’adresse.

Voilà nous avons maintenant toutes les informations nécessaire, ne reste plus que la création des commandes dans un plugin-script.

L’installation du plugin-script du market est indispensable.
Une fois celui-ci installé, rendez-vous sur :

Plugin / programmation / script depuis votre menu jeedom

Cliquez sur + pour ajouter un nouveau script.

Donnez lui un nom exemple : Soleil de ma ville sur l’onglet équipement :

Capture d’écran du 2020-05-06 11-08-58

Renseignez l’objet parent dans lequel vous voulez voir le apparaître
Cliquez Activer et Visible
Renseignez le cron (récurent une fois par heure) 0 * * * *

Sauvegardez puis passez à l’onglet Commandes.

Ajoutez 7 commandes Script :

pour la 1ere

Capture d’écran du 2020-05-06 11-29-20
Cliquez sur la case verte (création de script)

Renseignez le nom du script soupe dans l’exemple (ne mettez surtout pas d’extension)
Pourquoi, l’explication ici :

https://community.jeedom.com/t/directive-usr-bin-python3-ignoree/27090/22

Puis cliquez sur OK

Copiez / collez le script dans la fenêtre.

Capture d’écran du 2020-05-06 11-31-22

Puis cliquez sur Enregistrer

Il ne nous reste plus qu’à entrer les paramètres dont nous avons parlé plus haut.
Respectez bien les espaces entre …soupe 0 https…

Capture d’écran du 2020-05-06 11-46-34

Pour les 6 commandes suivantes c’est très simple, utilisez l’icône dupliquer
qui se trouve tout à droite de la ligne.

Capture d’écran du 2020-05-06 11-51-08

Une fois dupliqué n’oubliez pas de renommer toutes commandes
et de modifier le 1er paramètre qui doit prendre des valeurs de 0 à 6

Capture d’écran du 2020-05-06 12-03-59

N’oubliez pas de SAUVEGARDER.

Le rendu par défaut devrait être celui-ci avec un widget par défaut :

Capture d’écran du 2020-05-06 12-11-53

Celui-ci avec un widget Title

Capture d’écran du 2020-05-06 12-12-16

Voilà libre à vous d’utiliser le widget de votre choix.

Pour info j’ai désactivé les statistiques et je n’historise que la première commande.

Au cas ou la librairie ne soit pas présente dans votre environnement python3.
passez en console ssh

sudo pip3 install beautifulsoup4

Référence :
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
https://docs.python.org/fr/3.7/index.html

C’est à vous de jouer.

Ps: c’était un peu long dans les explications, mais je pense toujours au débutants …

Crédit @freetronic

13 J'aimes

Merci pour le partage, je vais tester ASAP

1 J'aime

De rien c’est un plaisir, n’hésite pas si il y a des coquilles merci de meles signalées

Un grand merci @Olive, et le débutant que je suis apprécie beaucoup :grinning:

1 J'aime

Signet ajouté merci pour ce bel exemple de script !

Et juste pour info, l’ensemble de ta partie météo c’est compliqué style 23 scripts différents pour chaque information ?

Oui et non ça dépend surtout du site je t’invite a regarder les méthodes dans la librairie.
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
et l’on trouve pas mal de tuto sur le scraping avec celle-ci et quelques vidéo dont certaines sont gratuite.

le scraping est en fait assez simple sur le principe l’on va rechercher dans une page html ou sont les informations dont on a besoin, mais ça requière aussi une bonne connaissance du html et de ses balises voir des Css utilisées.

la piste est bouton de droite sur une page examiner l’élément …

le plus simple est d’ouvrir une console
taper python3

>>> import requests
>>> from bs4 import BeautifulSoup
>>> res = requests.get("https://www.meteoblue.com/fr/meteo/semaine/paris_france_2988507")
>>> soupe=BeautifulSoup(res.content, "html.parser")

Puis de tester des commandes 
>>> soupe.a
1er lien

>>> soupe.p
premiere balise<p>

>>> soupe.find_all('a')
liste tout les liens 

>>> soupe.find_all(class_ = "wind")
Donne tous les contenus avec une class wind

>>> soupe.find_all(class_ = "wind")[0].text
Donne la vitesse du vent pour aujourd hui

>>> soupe.find_all(class_ = "wind")[0].text[33:36]
Idem mais juste la valeur

>>> soupe.find_all(class_ = "wind")[1].text[33:36]
Donne la vitesse du vent pour demain

.... etc voir la doc sinon j’écris le prochain tutoriel. 

Franchement c’est top @olive je vais mettre ça en plus chez moi!!

C’est torp bien le Python :stuck_out_tongue:

1 J'aime

Oui ok j’ai compris, mais faut y aller quand même pour récupérer tout ce que tu as fais avec cette méthode, bravo !

Cette ligne te donne qu’une petite idée de la puissance du langage objet qu’est python.

Je suis pas devant mon PC mais je tenterai. Pour le moment c’est assez obscur :laughing:

J’ai éditer le message 6 avec des exemples sur méteo blue paris
celui-ci cherche des données de prévision du vent a la fin.
amuse toi bien.

Bonjour,

Bravo @olive comme d’hab pour les script et la description !

Juste pour info, tu t’en sers pourquoi de cette info « ensoleillement prévisionnel » stp ? Quel jour tu vas mettre le lave-linge, quel jour le lave-vaisselle ? :slight_smile:
Car cela reste une prévision avec l’indice de confiance que l’on connait ;).

Merci

Ben oui comme j’ai de panneaux solaires voltaïque et thermique
Je peut décider de prendre une petite ou une grosse douche voir un bain balnéo :wink:

2 J'aimes

Sachant que la lumière naturelle est un facteur sur la santé et l’humeur des personnes, cela peux permettre de connaitre l"état d’humeur de la famille à l’avance (lol) :grin:

1 J'aime

j’ai ce message à l’enregistrement de ma commande :

image

Cela vriendrait de ceci ?

oui il y a bien des chances sous quel OS tu fonctionne

Je suis sur RPI 3B+, V4.0.54 dont je ne me souviens plus du nom utilisateur !!
image

Je vais devoir lui faire un clean Install je crois

ok c’est du stretch

l’utilisateur par défaut c’est pi

ouvre une console

et essai de faire sudo pip3 install beautifulsoup4

Oui je sais que c’est pi par défaut lais je crois que j’avais changé et en ssh je n’arrive pas avec pi

Hors sujet :
D’ailleurs il vaut mieux stretch ou buster ?

Aujourd’hui buster

1 J'aime