
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 installpython-setuptoolssudo easy_install pipsudo 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
