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:
- http://www.domoticz.com/forum/viewtopic.php?f=56&t=1574&sid=4ef7fa5bf763fdcfdb8f1a1e17a029ce&start=20#p85294
- http://raspi.tv/2014/tweeting-with-python-tweepy-on-the-raspberry-pi-part-2-pi-twitter-app-series
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"Bftn" 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.
Bijgewerkt op 20 februari 2023