openHAB und Ex-Twitter
In einem früheren Artikel hatte ich vorgestellt, wie ich openHAB und Prowl miteinander verheiratet habe. Inzwischen weiche ich jedoch mehr und mehr auf Ex-Twitter aus, und heute möchte ich euch zeigen, wie ich das mache.
Die Einrichtung
Für mein iDomicile habe ich einen Ex-Twitter-Account gleichen Namens angelegt (in erster Instanz hatte er einen andern Namen, der jedoch für zu viel Verwirrung sorgte). Über Ex-Twitter muss eine Applikation erstellt werden – hinderlich fand ich hier, dass Ex-Twitter einen inzwischen dazu zwingt, eine Rufnummer zu hinterlegen, wenn man dieses Feature nutzen möchte. Temporär habe ich dem Account also meine Mobilfunknummer unterschieben müssen, nachdem die App eingerichtet war hab ich dem Account die Nummer wieder entzogen – die App funktioniert weiterhin ohne Probleme. Über den Reiter Keys and Access Tokens
lassen sich nun Consumer Key und Consumer Secret abrufen – das sind die Angaben, die im nächsten Schritt in der openhab.cfg
hinterlegt werden müssen.
################ Twitter Action configuration ################
## Twitter user is iDomicile
twitter:key=twitterapp_consumer_key
twitter:secret=twitterapp_consumer_secret
twitter:enabled=true
[...]
Natürlich muss auch das Action-File org.openhab.action.twitter-$VERSION.jar
(die Dokumentation dazu findet sich hier) nach addons/
geschoben werden. Sobald es am Platz liegt und die Konfiguration vollständig ist, kannst du in der Konsole erkennen, dass es die Arbeit aufnimmt. Allerdings fehlt noch ein letzter Schritt, um die Authentifizierung abzuschließen – folge hierzu den Anweisungen, öffne den genannten Link und erstelle die Datei twitter.pin
mit dem Inhalt pin=DEINEPIN
.
########################################################################################
# Twitter-Integration: U S E R I N T E R A C T I O N R E Q U I R E D !!
# 1. Open URL 'http://api.twitter.com/oauth/authorize?oauth_token=specialtokenjustforyou'
# 2. Grant openHAB access to your Twitter account
# 3. Create an empty file 'twitter.pin' in your openHAB install path
# 4. Add the line 'pin=' to the twitter.pin file
# 5. openHAB will automatically detect the file and complete the authentication process
# NOTE: You will only have 5 mins before openHAB gives up waiting for the pin!!!
########################################################################################
Läuft alles korrekt, wird im openHAB-etc/
eine Datei twitter.token
angelegt (die dann auch dort bleiben muss), der Dienst meldet, dass er bereit ist – und twitter.pin
kann nun gelöscht werden.
TwitterAction has been successfully authenticated > awaiting your Tweets!
Die Nutzung
Bei der Nutzung von Ex-Twitter innerhalb von openHAB müssen einige Dinge berücksichtigt werden. So unterliegt die Nutzung beispielsweise den bei Ex-Twitter aktuell geltenden Ex-Twitter API Rate Limits und insbesondere auch der Beschränkung auf 140 Zeichen. Desweiteren unterbindet Ex-Twitter das Senden der immerzu gleichen Nachricht – willenloses Spammen ist also auch von deinem Smarthome nicht erwünscht.
Allgemeiner Tweet
Zu Testzwecken darf mein iDomicile derzeit jede Stunde die aktuelle Außentemperatur raushauen. Es tut das unter Angabe der Uhrzeit, das minimiert die Wahrscheinlichkeit identischer Tweets. Okay, bisweilen übertreibt es es ein wenig mit seinen Angaben – daran werde ich dann wohl noch etwas feilen müssen ;-) Die rules
-Datei findest du auch auf GitHub.
rule "Sende einen regelmäßigen Tweet"
when
Time cron "0 23 * * * ?"
then
var Number Stunde = now.getHourOfDay
var Number Minute = now.getMinuteOfHour
sendTweet("Die Außentemperatur beträgt " +Wetter_Temperatur.state +"°C um " +Stunde +" Uhr und " +Minute +" Minuten.")
end
Mention
Die allgemeinen Tweets können im Rauschen natürlich untergehen. Ist es mir wichtig, von einer Nachricht auch wirklich Notiz zu nehmen, so lasse ich openHAB eine Mention an mich schreiben – zum Beispiel, wenn die Wäsche fertig ist.
sendTweet("@sys_adm_ama Waschkeller meldet um " +Stunde +" Uhr und " +Minute +" Minuten: die Wäsche ist fertig!")
Direct Message (DM)
Manche Dinge sollen aber vielleicht auch nicht für alle lesbar sein – vielleicht, wenn du das Haus verlässt und vergessen hast, ein Fenster oder eine Tür ordnungsgemäß zu schließen. Beachte jedoch, dass du auch hier den Maßgaben von Ex-Twitter unterliegst: für Direktnachrichten müssen du und dein Smarthome-Account einander entweder folgen, oder du musst in den Sicherheitseinstellungen deines Ex-Twitter-Accounts einen Haken bei „Erhalte Direktnachrichten von jedem.“ setzen.
rule "Eine Direktnachricht zum Testen"
when
Item TestSwitchItem changed to ON
then
sendDirectMessage("sys_adm_ama", "A host is a host from coast to coast...")
end
Hintergrundbild: 795x 745px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten