Automatische weer tweets

Hieronder kun je lezen hoe ik het voor elkaar heb gekregen om automatisch weer tweets op mijn Twitter account te plaatsen. De inspiratie hiervoor heb ik opgedaan op:


Als eerste maak je op de site https://apps.twitter.com/app/new je eigen API inloggegevens aan. Noteer of kopieer ze, je hebt ze later nodig.

Vervolgens log je via SSH in op je Raspberry en voer je onderstaande opdrachten uit:

  • sudo apt-get install python-setuptools
  • sudo easy_install pip
  • sudo pip install tweepy

Download het python script weer_tweet.py en plaats het in de map: home/pi/domoticz/scripts/python

In het bestand weer_tweet.py, vul je tussen de aanhalingstekens de Twitter API gegevens in.
API_KEY = ''
API_SECRET = ''
ACCESS_TOKEN = ''
ACCESS_TOKEN_SECRET = ''

Sla het bestand op en maak het met de opdracht chmod +x /home/pi/domoticz/scripts/python/weer_tweet.py uitvoerbaar.

Maak het bestand /home/pi/domoticz/scripts/logging/weather_updates/weather-tweet.txt en maak het met chmod +x /home/pi/domoticz/scripts/logging/weather_updates/weather-tweet.txt ook uitvoerbaar.

We starten nu met het script weer_tweet.sh. Bij temp, hygro,rain en wind moet je bij de eerste regel de XXX aanpassen naar het IDX nummer van je sensor waar je de informatie van wilt opnemen. Door http://127.0.0.1:8080/json.htm?type=devices&rid=XXX in je browser in te voeren kun je de gegevens van de sensor uitlezen en kun je de nummers achter {print $ aanpassen, zodat je de juiste waarde krijgt.

#!/bin/bash

timestamp=`/bin/date +%H`

temp=`curl "http://127.0.0.1:8080/json.htm?type=devices&rid=XXX"`
echo $temp > /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt
temp=`cat /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt | awk -F: '{print $16, $17}' | awk '{print $3}' | sed 's/\"//g'`

hygro=`curl "http://127.0.0.1:8080/json.htm?type=devices&rid=XXX"`
echo $hygro > /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt
hygro=`cat /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt | awk -F: '{print $17, $18}' | awk '{print $3}' | sed 's/\"//g'`

rain=`curl "http://127.0.0.1:8080/json.htm?type=devices&rid=XXX"`
echo $rain > /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt
rain=`cat /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt | awk -F: '{print $33, $34}' | awk '{print $3}' | sed 's/\"//g' | sed 's/,//g'`

wind=`curl "http://127.0.0.1:8080/json.htm?type=devices&rid=XXX"`
echo $wind > /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt
dir=`cat /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt | awk -F: '{print $20, $21}' | awk '{print $3}' | sed 's/\"//g' | sed 's/,//g'`
speed=`cat /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt | awk -F: '{print $22, $23}' | awk '{print $3}' | sed 's/\"//g' | sed 's/,//g'`
gust=`cat /home/pi/domoticz/scripts/logging/weather_updates/weather-data.txt | awk -F: '{print $39, $40}' | awk '{print $3}' | sed 's/\"//g' | sed 's/,//g'`

if [ $speed == $gust ]; then
gusts="\n"
else
gusts=" | Vlagen: "$gust"Bft\n"
fi

echo -ne "#Veendam | "$timestamp":00 | Temp: "$temp"°C | Wind: "$dir" "$speed"Bft"$gusts" Rel. luchtv: "$hygro"% | Neerslag: "$rain"mm" > /home/pi/domoticz/scripts/logging/weather_updates/weather-tweet.txt

sudo python /home/pi/domoticz/scripts/python/weer_tweet.py

Na het opslaan van het bestand, maak je hem uitvoerbaar met: chmod +x /home/pi/domoticz/scripts/weer_tweet.sh

Door onderstaande regel aan je crontab toe te voegen krijg je automatisch iedere twee uur een weer tweet.

0 */2 * * * sudo /home/pi/domoticz/scripts/weer_tweet.sh
Naast weersgegevens is het natuurlijk ook mogelijk om andere data uit Domoticz automatisch op Twitter als tweet worden geplaatst.

Reacties

reacties

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

*