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.