Schlagwort-Archive: smart home

[openhab2] Sicherheitskamera im Habpanel einbinden

Im Habpanel können die unterschiedlichsten Aktoren oder Widgets für Informationen hinterlegt werden. Eigentlich war es geplant das Live Bild einer Überwachungskamera von Foscam ebenfalls einzubinden. Leider bietet die eingesetzte Kamera nicht die Option das Livebild per URL abzurufen, hierfür muss die Handyapp oder das webfrontend verwendet werden. Beim suchen nach einer geeigneten Lösung für das Problem bin ich in dem openhab Forum auf einen funktionierenden Ansatz gestoßen. Die Kameras bieten zwar kein Livebild per URL, jedoch kann ein Standbild abgerufen werden. In dem Image Widgets des Habpanels kann die entsprechende URL hinterlegt werden und das Widget bietet die Option das Bild in bestimmten Intervallen neu zu laden.

Die hinterlegte Url lautet http://ipadresse:88/cgi-bin/CGIProxy.fcgi?cmd=getDevState&usr=benutzer&pwd=kennwort, das Intervall wurde auf 2 Sekunden gesetzt.

[openhab2] Habpanel

Neben der App, der Website oder Integration in Amazon Alexa kann für das Schalten der Aktoren auch das Habpanel genutzt werden. Auf dem Habpanel können verschiedene Seiten erstellt werden, unter den Seiten können Schalter angelegt werden oder Kacheln in denen Informationen ausgegeben werden. Für einen schaltbaren Aktor verwende ich folgende Einstellung im Habpanel:

Das Ergebnis sieht wie folgt aus:

Hier ein Beispiel um den Zustand von Kontakten in einer Kachel auszugeben, es wurde dafür ein Template verwendet:


<div class="row" ng-repeat="item in itemsInGroup('kontakte')">
<div class="col-xs-8 text-right">{{item.name}}</div>
<div class="col-xs-4 text-left" ng-style="{ color: itemValue(item.name)=='OPEN'?'red':'green' }">
{{itemValue(item.name)}}
</div>
</div>

Ebenfalls können im Habpanel die Zeiten ausgegeben werden, wann zum Beispiel ein Fensterkontakt das letzte Mal den Status geändert hat.

Hierzu wurde ein entsprechendes Item angelegt, in dem per Rule die Zeit geschrieben wird sobald sich der Status des Items ändert.

Innerhalb der Rule wird wie folgt der Timestamp geschrieben
var local_time = java::util::Calendar::getInstance(TimeZone::getTimeZone("Europe/Berlin"))
postUpdate(Wohnzimmer_Tuer_rechts_bewegung, new DateTimeType(local_time))

Am Anfang der rules Datei wurden noch folgende Zeilen eingefügt:
import org.openhab.core.library.types.*
import java.util.Calendar
import java.util.Date
import java.util.TimeZone

Vermutlich gibt es noch weitere Möglichkeiten die Uhrzeit bzw den Timestamp in einem Item zu hinterlegen, wenn einfachere oder andere Möglichkeiten bekannt sind würde ich mich über einen entsprechenden Kommentar freuen.

Für die Ausgabe der Zeiten im Habpanel wurde ein Template mit folgendem Inhalt verwendet:

 

<div class="row" ng-repeat="item in itemsInGroup('bewegung')">
<div class="col-xs-8 text-right">{{item.name}}</div>
<div class="col-xs-4 text-left" ng-style="{ color: itemValue('item.name') }">
{{itemValue(item.name) | date:'dd.MM HH:mm' }}
</div>
</div>

[openhab2] in Amazon Alexa integrieren

Wenn man eine Alexa inkl. Smart HUB besitzt lassen sich sehr einfach die Lampen von Philips HUE einbinden und per Sprache steuern. Existiert bereits eine Hausautomation über openhab, so können die Aktoren ebenfalls über Alexa angesprochen werden.

Zunächst muss hierfür ein Konto bei https://myopenhab.org eingerichtet werden. Für die Einrichtung wird die openhab UUID und das openhab Secret benötigt.

Die UUID befindet sich unter /var/lib/openhab2/uuid und das Secret unter /var/lib/openhab2/uuid.

Nachdem das Konto eingerichtet wurde muss unter der PaperUI(MISC) das Modul openHAB Cloud Connector installiert werden, im Anschluss erfolgt unter Configuration => Services die Einrichtung. Nach einem Neustart ist es möglich über myopenhab.org die Aktoren zu schalten.

Für die Verbindung von Alexa zum myopenhab wird der entsprechende Skill benötigt.
Damit Aktoren beim Pairing gefunden werden, muss in der items.cfg beim Item der Paramter Lighting hinterlegt werden.

Switch Lampe "Lampe" (flur) ["Lighting"] {fs20="1B1111"}

Für das einfachere Ansprechen der Aktoren kann in der Amazon Alexa App ein anderer Name hingelegt werden als im openhab2.


Update

Ich wurde darauf hingewiesen das eine Integration von Amazon Alexa zu openhab auch möglich ist in dem in openhab die HUE Emulation genutzt wird und auf der Alexa der HUE Skill installiert wird. Somit ist der Onlinezugang zu myopenhab nicht notwendig.

[openhab2 und myopenhab] einrichten

Ist man unterwegs und möchte zu Hause evtl. eine Lampe einschalten, so gibt es drei Möglichkeiten um auf openhab zuzugreifen. Zum einen könnte man über Dienste wie dyndns auf das heimische Netzwerk zugreifen, in der Firewall muss der entsprechende Port weitergeleitet werden. Alternativ kann zunächst über VPN ein Tunnel in das heimische Netzwerk aufgebaut werden und im Anschluss erfolgt der Zugriff auf openhab.
Die eleganteste Lösung finde ich ist myopenhab.
Zunächst muss unter der Paperui Addons=>Misc der openhab cloud connector installiert werden.

Nun wird noch für die Registrierung auf http://www.myopenhab.org die uuid und das secret benötigt.

Die Angaben befinden sich in den Folgenden Dateien:

/var/lib/openhab2/uuid
/var/lib/openhab2/openhabcloud/secret

Nach der Registrierung und Installation muss openhab neugestartet werden. Im Anschluss kann auch außerhalb des heimischen Netzwerks über die openhab App auf die Hausautomation zugegriffen werden.

Myopenhab wir auch für die integration in Amazon Echo benötigt.

[openhab2] Anwesenheitserkennung

Durch einen Defekt auf einer SD Karte musste ich openhab neu installieren und bin auf die Version 2.1 umgestiegen. Um zu prüfen welche Handys sich WLAN befinden gibt es nun gegenüber openhab1 eine Änderung. Die alte Regel aus dem Artikel kann weiterhin genutzt werden, jedoch müssen die Items anders abgefragt werden.

Zunächst muss unter der Paperui das Network–Binding installiert werden.

Unter dem Ordner things wurde die Datei mobil.things mit dem folgenden Inhalt erstellt.

network:device:handy1 [ hostname="192.168.2.37", port="0", retry="1", timeout="5000", refresh_interval="60000", use_system_ping="true", dhcplisten="false" ]
network:device:handy2 [ hostname="192.168.2.34", port="0", retry="1", timeout="5000", refresh_interval="60000", use_system_ping="true", dhcplisten="false" ]

Die Datei mobil.items in dem Verzeichniss items ist wie folgt aufgebaut.

Group:Switch gMobiles

Switch Presence (fstest)
Switch Handy1 (gMobiles) { channel="network:device:handy1:online" }
Switch Handy2 (gMobiles) { channel="network:device:handy2:online" }