Openhab mit externen Informationen versorgen

Ziel ist es Informationen wie Sonnen Auf- und Untergang in Openhab zur Steuerung von Außenlampen zu verwenden. Im wesentlichen bin ich nach dieser Anleitung vorgegangen.

Zuerst ist ein HTTP Binding zu installieren

apt-get install openhab-addon-binding-http
/etc/init.d/openhab restart

Für die Werte verwende ich zu Beginn die Informationen von Wonderground. Dort muss man sich anmelden und einen Developer API Key beantragen.

Die notwendigen Informationen von Openhab sehen dann wie folgt aus

vi items/default.items
  String strSunset "Sonnenuntergang [%s]" <clock> { http="<[http://api.wunderground.com/api/api-key/conditions/forecast/astronomy/lang:DL/q/Germany/Meckenheim.xml:21600000:XSLT(wunderground_sunset.xsl)]" }

Um aus der langen XML Seite genau die Uhrzeit für den Sonnenuntergang zu bekommen brauchen wir noch eine xsl Definition

 vi transform/wunderground_sunset.xsl

 <?xml version="1.0"?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output indent="yes" method="xml" encoding="UTF-8" omit-xml-declaration="yes" />
    <xsl:template match="/">
    <!-- format: hh:mm:ss -->
    <xsl:value-of select="//sunset/hour/text()" /><xsl:text>:</xsl:text><xsl:value-of select="//sunset/minute/text()" /><xsl:text>:00</xsl:text>
    </xsl:template>
  </xsl:stylesheet>

Im Logfile kann man dann auch sehen das eine entsprechende Variable eingerichtet wurde.

tail /var/log/openhab/events.log
   2015-02-09 16:52:07 - strSunset state updated to 17:37:00
   2015-02-09 16:52:09 - Var_Holidaymode state updated to false

In der Sitemap kann man sich die Uhrzeit dann anzeigen lassen

vi sitemaps/default.sitemap
   Text item=strSunset

Eigentlich sollte das eine schnelle Sache sein. Es scheint aber so zu sein, daß einige der Änderungen im Zusammenspiel mit den Variablen nicht nach dem Editieren neu geladen werden sondern ein Neustart des Openhab Servers notwendig ist.

Wenn es also nicht geht einfach mal den Service neustarten Ziel ist es Informationen wie Sonnen Auf und Untergang in Openhab zur Steuerung von Aussenlampen zu verwenden. Im wesentlichen bin ich nach dieser Anleitung vorgegangen

Zuerst ist ein HTTP Binding zu installieren

apt-get install openhab-addon-binding-http
/etc/init.d/openhab restart

Für die Werte verwende ich zu Begin die Informationen von Wonderground. Dort muss man sich anmelden und einen Developer API Key beantragen.

Die notwendingen Informationen von Openhab sehen dann wie folgt aus

vi items/default.items
  String strSunset "Sonnenuntergang [%s]" <clock> { http="<[http://api.wunderground.com/api/api-key/conditions/forecast/astronomy/lang:DL/q/Germany/Meckenheim.xml:21600000:XSLT(wunderground_sunset.xsl)]" }

Um aus der langen XML Seite genau die Uhrzeit für den Sonnenuntergang zu bekommen brauchen wir noch eine xsl Definition

 vi transform/wunderground_sunset.xsl

 <?xml version="1.0"?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output indent="yes" method="xml" encoding="UTF-8" omit-xml-declaration="yes" />
    <xsl:template match="/">
    <!-- format: hh:mm:ss -->
    <xsl:value-of select="//sunset/hour/text()" /><xsl:text>:</xsl:text><xsl:value-of select="//sunset/minute/text()" /><xsl:text>:00</xsl:text>
    </xsl:template>
  </xsl:stylesheet>

Im logfile kann man dann auch sehen das eine entsprechende Variable eingerichtet wurde.

tail /var/log/openhab/events.log
   2015-02-09 16:52:07 - strSunset state updated to 17:37:00
   2015-02-09 16:52:09 - Var_Holidaymode state updated to false

In der Sitemap kann man sich die Uhrzeit dann anzeigen lassen

vi sitemaps/default.sitemap
   Text item=strSunset

Eigentlich sollte das eine schnelle Sache sein. Es scheint aber so zu sein, daß einige der Änderungen im Zusammenspiel mit den Variablen nicht nach dem Editieren neu geladen werden sondern ein Neustart des Openhab Servers notwendig ist.

Wenn es also nicht geht einfach mal den Service neu starten.