Mes passions, le boulots, mes coups de gueule...




Shell Script pour notifier de conditions météo défavorables au tirage de ma chaudière via Pushbullet

Catégories : Domotique, Geek, Informatique, Raspberry Pi · par 7 Déc 2016

Introduction

Lorsque certaines conditions climatiques défavorables sont réunies, le tirage de ma chaudière est faible et celle-ci a tendance à refouler et à se mettre en sécurité. Particulièrement lorsque le brûleur fonctionne longtemps à haut régime pour produire l’eau chaude de ma douche matinale.

Pour palier à ce problème occasionnel, j’ouvre la fenêtre de la cuisine et la porte de la chaufferie pour améliorer le tirage.

NB.: Je suis équipé d’un détecteur de monoxyde de carbone en plus des sécurités de la chaudière. Il ne s’est jamais déclenché.

Mais comment savoir, avant d’entrer sous la douche, qu’elle risque de subitement me débiter de l’eau glacée sur le dos ? 🙂

En consultant le site de meteo.be !

Nous allons donc rapatrier les informations qu’il contient et les transformer en notifications Pushbullet si nécessaire.

Le script

#!/bin/bash

# On rapatrie http://www.meteo.be/meteo/view/fr/65239-Accueil.html dans le fichier index.html
wget http://www.meteo.be/meteo/view/fr/ -O /home/pi/scripts/meteo-chaudiere/index.html

# On recherche les mots "foyers domestiques" dans le fichier que l'on vient d'enregistrer.
grep 'foyers domestiques' /home/pi/scripts/meteo-chaudiere/index.html

# Le retour d'info est chargé dans la variable $retval :
# 0 = présence du mot
# 1 = absence du mot
retval=$?

if [ "$retval" = 0 ]
then

        # On envoie la notification Pushbullet
        emoji=$'\xE2\x98\x81'
        curl -s -u <code class="bash plain">ici_votre_token_Pushbullet</code>: https://api.pushbullet.com/v2/pushes -d type=note -d title="Raspberry Pi - $emoji Météo défavorable" -d body="Les prévisions météo s'annoncent défavorables pour le tirage de la chaudière." &gt; /dev/null

        # On ajoute une ligne dans le log qui contient la date et l'heure de la notification
        echo `date +\%Y\%m\%d` - `date +\%T` - Météo défavorable pour le tirage de la chaudière. &gt;&gt; /var/log/meteo-chaudiere/meteo-chaudiere-`date +\%Y\%m`.log

fi

# On supprime le fichier HTML
rm /home/pi/scripts/meteo-chaudiere/index.html 

Le script va vérifier la météo chaque jour à 7h55 via un cronjob et envoyer une notification Pushbullet et ajouter une ligne dans un fichier log si les conditions climatiques sont défavorables au tirage de ma chaudière.

$ sudo crontab -e

Le cronjob :

# Vérifie la météo pour le tirage de la chaudière le matin à 7h55
55 7 * * * /home/pi/scripts/meteo-chaudiere/meteo-chaudiere.sh > /dev/null 2>&1

On rapatrie le fichier HTML (wget) du site meteo.be et on vérifie (grep) s’il contient quelques mots de la phrase : « L’IRM signale des conditions défavorables au fonctionnement des foyers domestiques et des chauffe-eau. Soyez attentif à tout symptôme de type « maux de tête » ou « envie de vomir » qui pourrait être dû à une intoxication au CO. ».

Si oui, wget retourne 0. Sinon, 1. On stock cette réponse dans $retval.

Si $retval = 0, alors, on envoie une notification.

Pour insérer un emoji dans la notification, j’ai du passer par une variable.

Le script se trouve dans : /home/pi/scripts/meteo-chaudiere/meteo-chaudiere.sh

Les logs se trouvent dans : /var/log/meteo-chaudiere/meteo-chaudiere-YYYYMM.log

Résultat

Notification sur l’écran verrouillé de l’iPhone :

Notification dans Pushbullet :

Références :

Insérer un emoji : https://stackoverflow.com/
Liste des emoji : http://apps.timwhitlock.info/
Test de la présence d’un mot dans un fichier : http://www.commentcamarche.net/

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.