Fussball Ergebnisse als Auslöser für Szenarien im Smart Home

20.08.2016

Jetzt bin ich nicht einmal der größte Fußball-Fan in der Familie. Aber immerhin steigt die Stimmung im Haus während der Spiele der Lieblingsmannschaften spürbar und ich möchte das mit einer entsprechenden Automatisierung von Stimmungslicht-Situationen unterstreichen. Dazu integriere ich eine öffentliche API, von der ich Fussball-Ergebnisse wie z.B. Tore abgreifen kann und in Aktionen im Haus übersetzen kann.

Bildquelle: football-data.org

Das Funktionsprinzip

Ziel ist es, einen Online-Dienst, der Fussball-Ergebnisse in Echtzeit zur Verfügung stellt, so in das Heimnetzwerk zu integrieren, als wäre es ein Sensor der zu bestimmten Ereignissen Werte sendet. Dieser virtuelle Sensor kann dann beliebige Regeln und Automatismen auslösen. Nach einiger Recherche im Internet habe ich festgestellt, dass die offiziellen Online-Dienste allesamt kostenpflichtig sind und sicherlich für den professionellen Einsatz bestimmt sind. Da es sich für mich nur um ein Experiment handelt, habe ich solche hohen Ansprüche nicht und es reicht mir zum Testen auf eine einfache kostenlose Lösung zu gehen. Dazu habe ich das Projekt football-data.org gefunden. Es handelt sich um ein privates Projekt von einem Deutschen Entwickler der damit ein persönliches Hobby zu verfolgen scheint. Wie auch immer kann man sich dort kostenlos registrieren. Diese Lösung grabt übrigens die Daten von bestimmten Portalen und macht eine Realtime-Analyse von Social media daten wie z.B. Twitter um an Zahlen und Tore zu kommen. Das finde ich ist ein interessantes Verfahren und hat sicherlich einige Mühe gemacht.

Die API von football-data.org

Auf der Homepage ist die API sehr gut beschrieben. Man kann über REST-Calls auf viele Ressources zugreifen, wie Wettbewerbe (LeagueTables), Mannschaften (Teams), Spiele (Fixtures) und Spieler (Players). Zur Authentifizierung bekommt man beim Anlegen des Online-Accounts einen API-Key, den man bei den Requests in den Header einbaut. Das besondere ist aber, dass man einen eigenen Web-Server registrieren kann, der Events in Echtzeit empfängt die vom Portal abgesetzt werden. Dazu kann man auf dem Portal von football-data.org seinen eigenen Service mit einer URL registrieren. Nach dem Senden eines Test-Requests zur Bestätigung der URL werden dann alle Events zum eigenen Server durchgeleitet.

Die Integration in hundhome

Als Web-Server für ankommende Events nutze ich natürlich girder. In der aufgerufenen Seite wird dann ein entsprechendes LUA-Script ausgeführt welches mir den entsprechenden Event durchleitet. Dieses Script ist Teil eines item Manager Modules welches ich für diesen zweck entwickelt habe.

In dem iM Module steht das Module Objekt für den angelegten Online Account mit dem API-Key und für jedes Team welches ich verfolgen möchte wird ein Item angelegt. Dieses Item steht quasi für einen virtuellen Sensor der im Falle eines laufenden Spiels Zwischenergebnisse und die Spielbeginn/Ende-Events sendet. Diese Events werden als JSON-basierte Values in dem Item hinterlegt und können behandelt werden wie ein normales Signal von einem Sensor.
Im Rahmen von weiteren girder-Aktionen können diese Events verwendet werden, um z.B. Farbleuchten in der Farbe der Lieblingsmannschaft einzuschalten, wenn das Team ein Tor geschossen hat. Außerdem lasse ich mir über meine Pushover-Anbindung die Ergebnisse bestimmter Mannschaften auf mein Smartphone pushen. Das ist nicht 100%ig zuverlässig aber geht doch recht gut. Immerhin kommen diese Meldungen teilweise schneller als die offiziellen Push-Nachrichten von professionellen Diensten wie Onefootball. Das kann bei Toren natürlich durchaus relevant sein.

Zurück