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 :

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

#! /usr/bin/env python3
import requests
import re
from sys import argv
from bs4 import BeautifulSoup
res = requests.get(argv[2])
soupe=BeautifulSoup(res.content, "html.parser")
print(int(re.findall(r'\d+',soupe.find_all(class_ = "tab-sun")[int(argv[1])].text[0:200].strip())[0]), 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.

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 :

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

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.

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…

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

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

N’oubliez pas de SAUVEGARDER.

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

Celui-ci avec un widget Title

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

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. 
          

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

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

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 ?