ONLINE

openHAB und 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 Twitter aus, und heute möchte ich euch zeigen, wie ich das mache.

Die Einrichtung

App Settings for openHABFür mein iDomicile habe ich einen Twitter-Account gleichen Namens angelegt (in erster Instanz hatte er einen andern Namen, der jedoch für zu viel Verwirrung sorgte). Über apps.twitter.com muss eine Applikation erstellt werden — hinderlich fand ich hier, dass 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 hierGITHUB) 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=<authpin>' 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

openHAB ÜbertreibenBei der Nutzung von Twitter innerhalb von openHAB müssen einige Dinge berücksichtigt werden — so unterliegt die Nutzung beispielsweise den bei Twitter aktuell geltenden API Rate Limits und insbesondere auch der Beschränkung auf 140 Zeichen; desweiteren unterbindet Twitter das Senden der immerzu gleichen Nachricht — willenloses Spammen ist also auch von deinem Smarthome nicht erwünscht.

Allgemeiner Tweet

openHAB AussentemperaturZu Testzwecken darf mein iDomicile derzeit jede Stunde die aktuelle Außentemperatur raushauen; er 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

openHAB WaschkellerDie 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)

Direct Message via openHABManche 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 Twitter unterliegst: für Direktnachrichten müssen du und dein Smarthome-Account einander entweder folgen, oder du musst in den Sicherheitseinstellungen deines 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
  1. Hi,

    schöne openHAB Hinweise sind bei dir zu lesen.
    Ich will auch gerade mein openHAB zum twittern bringen´.
    Nur scheint der Wille aktuell einseitig zu sein.
    Wo ist denn der „Create an empty file ‚twitter.pin‘ in your openHAB install path“?
    Ich dachte das wäre /etc/openhab/ … nur scheint er bei mir hier die PIN nicht zu greifen.

    Gruß
    Robert

    • Hi Robert,

      die twitter.pin musst du dorthin packen, wo auch das start.sh beispielsweise liegt — also an die Stelle, an der du OpenHAB ausgepackt hast; den genauen Pfad weiß ich natürlich nicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.