OwnTracks recorder – Speichern und Verwalten von Positionsdaten

Einleitung

Mit OwnTracks recorder können die von OwnTracks übermittelten Positionsdaten gespeichert und verwaltet werden. 

Installation

Für Debian 7 und 8, CentOS 7 und Raspbian (wheezy) steht ein Repository zur Verfügung. Hier für Debian 8:

wget http://repo.owntracks.org/repo.owntracks.org.gpg.key
apt-key add repo.owntracks.org.gpg.key
echo "deb  http://repo.owntracks.org/debian jessie main" > /etc/apt/sources.list.d/owntracks.list
apt-get update
apt-get install ot-recorder

Weiter mit der Konfiguration.

Konfiguration

Wer nach dem hier veröffentlichten Beitrag Mosquitto installiert hat, kann zunächst für den OwnTracks recorder einen Benutzer erstellen:

mosquitto_passwd /etc/mosquitto/passwd <BENUTZERNAME>

Im Anschluss muss dieser Benutzer in der Konfigurationsdatei /etc/default/ot-recorder hinterlegt und der Port auf 8883 angepasst werden.

OTR_PORT=8883
OTR_USER="<BENUTZERNAME>"
OTR_PASS="<PASSWORT>"

Nun kann der OwnTracks recorder mittel ot-recorder ‚owntracks/#‘ gestaret werden, die Ausgabe wie folgt:

ot-recorder[30465]: version 0.6.9 starting with STORAGEDIR=/var/spool/owntracks/recorder/store
ot-recorder[30465]: connecting to MQTT on localhost:8883 as clientID ot-recorder-openhab-30465 without TLS
ot-recorder[30465]: HTTP listener started on 127.0.0.1:8083
ot-recorder[30465]: Using storage at /var/spool/owntracks/recorder/store with precision 7
ot-recorder[30465]: Subscribing to owntracks/# (qos=2)

Wird vom Handy eine Position übermittelt, sieht das auf der Shell dann so aus:

- 21:15:09 owntracks/test/stefan             t=  tid=tt loc=49.xxxxx,7.xxxxx [DE] Musterstraße 1, 12345 Musterstadt, Germany (u0v0b7s)

Läuft bis hierhin alles, sollte noch dafür gesorgt werden, dass OwnTracks recorder automatisch mit dem Betriebssystem startet.

Service

Der Service sollte sich wie folgt einrichten lassen:

systemctl enable ot-recorder
systemctl start ot-recorder

Allerdings lässt er sich in meiner Konfiguration nicht starten. Als Workaround starte ich OwnTracks recorder stattdessen in /etc/rc.local:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

ot-recorder 'owntracks/#'

exit 0

Nach einem Neustart der Maschine wird der OwnTracks recorder dann ebenfalls gestartet. Weiter mit der Darstellung der Positionsdaten.

Web / Apache

Es wird empfohlen, den Zugriff über einen Reverse-Proxy zu realisieren, hier am Beispiel Apache. Zunächst einige Module aktivieren:

a2enmod proxy_wstunnel
a2enmod proxy_http
a2enmod proxy_html

Nun erstellen wir eine Kofiguration /etc/apache2/conf-available/ot-recorder.conf mit folgendem Inhalt:

ProxyPass        /owntracks/ws        ws://127.0.0.1:8883/ws keepalive=on retry=60
ProxyPassReverse /owntracks/ws        ws://127.0.0.1:8883/ws keepalive=on

# Static files
ProxyPass /owntracks                  http://127.0.0.1:8883/
ProxyPassReverse /owntracks           http://127.0.0.1:8883/

… und aktivieren diese:

a2enconf ot-recorder
service apache2 reload

Abschluss mit einem Test.

Ergebnis

Browser starten und http://<rechnername/ip>/owntracks/ öffnen. 🙂

Have fun!

Sonos Lautsprecher in openHAB einbinden

Einleitung

Der nachfolgende Artikel beschreibt, wie das openHAB Sonos-Binding installiert und eingesetzt werden kann. Weitere Informationen sind unter https://github.com/openhab/openhab/wiki/Sonos-Binding einzusehen.

Installation

Die Installation mittels apt:

apt-get install openhab-addon-binding-sonos

Nun kann die Konfiguration erfolgen.

Konfiguration

Zur Konfiguration der einzelnen Lautsprecher wird ihr UDN benötigt. Im obigen Link zum Plugin wird beschrieben, wie diese ermittelt werden kann, dort wird das Programm UPNP-Test empfohlen. Details siehe Link zum openHAB Sonos-Binding. Die Lautsprecher mit ihrer UDN werden dann in unter openhab/configurations/openhab.cfg wie folgt hinterlegt:

sonos:Wohnzimmer.udn=RINCON_123456789ABC01400
sonos:Bad.udn=RINCON_23456789ABCD01400
# [...]

Danach können die Items und zugehörige Rules konfiguriert werden.

Items

Wir nutzen einen Switch für Start/Stop der Wiedergabe sowie einen Slider zum Anpassen der Lautstärke:

//Gruppen
Group   gSonos                  "Sonos"                         <sonos>         (gALL)
Group   gSonosWZ                "Wohnzimmer"                    <sonos>         (gSonos)
Group   gSonosBad               "Bad"                           <sonos>         (gSonos)
// [...]

//Items
Switch  Sonos_Pwr_Bad           "ein/aus"               (gSonosBad)     { sonos="[ON:Bad:play], [OFF:Bad:stop]" }
Dimmer  Sonos_Vol_Bad           "Lautstärke"            (gSonosBad)     { sonos="[Bad:volume]" }
String  Sonos_CurTit_Bad        "Titel: [%s]"           (gSonosBad)     { sonos="[Bad:currenttitle]", autoupdate="false" }
String  Sonos_CurArt_Bad        "Interpret: [%s]"       (gSonosBad)     { sonos="[Bad:currentartist]", autoupdate="false" }
String  Sonos_CurAlb_Bad        "Album: [%s]"           (gSonosBad)     { sonos="[Bad:currentalbum]", autoupdate="false" }
String  Sonos_CurTrk_Bad        "Track: [%s]"           (gSonosBad)     { sonos="[Bad:currenttrack]", autoupdate="false" }
Switch  Sonos_Next_Bad          "nächster Titel"        (gSonosBad)     { sonos="[Bad:next]" }
Switch  Sonos_LED_Bad           "LED Status"            (gSonosBad)     { sonos="[ON:Bad:led], [OFF:Bad:led]", autoupdate="false" }
String  Sonos_State_Bad         "Status: [%s]"          (gSonosBad)     { sonos="[Bad:transportstate]", autoupdate="false" }
// [...]

Schließlich müssen noch entweder die Gruppen (gSonos oder gSonosBad, etc.) oder aber einzelne Items in die Sitemap eingebunden werden. Dann kann getestet werden.

Have fun!

openHAB FritzBox TR064 Binding

Vorwort

Daten neuerer „FritzBoxen“ können über das TR064 Protokoll ausgelesen werden, hierzu kann das openHAB FritzBox TR064 Binding genutzt werden.

Voraussetzungen

Zwingend vorausgesetzt ist Java JRE 1.8.0 oder höher, 1.7 oder openJDK funktionieren nicht.

Unter Debian:

apt-get install oracle-java8-set-default oracle-java8-installer

Darüber hinaus muss sichergestellt sein, dass „Zugriff für Anwendungen zulassen“ aktiviert ist. Sollen Gesprächsinformationen ausgewertet werden, muss zudem die Funktionalität über das Wählen von #96*5* aktiviert werden. #96*4* deaktiviert die Funktionalität wieder.

Details zum Binding unter https://github.com/openhab/openhab/wiki/FritzBox-TR064-Binding.

Installation

Die Installation des openHAB FritzBox TR064 Binding kann zurzeit noch nicht mittels apt erfolgen. Stattdessen ist das Binding herunterzuladen und in das Addons-Verzeichnis von openHAB zu kopieren:

wget https://github.com/gitbock/fritzboxtr064/releases/download/v1.0.1/org.openhab.binding.fritzboxtr064_1.8.0.201603130944.jar
mv org.openhab.binding.fritzboxtr064_1.8.0.201603130944.jar /usr/share/openhab/addons/

Nun muss openHAB konfiguriert werden.

Konfiguration

Die Konfiguration des openHAB FritzBox TR064 Binding erfolgt in zwei Schritten. Zugangsdaten werden in der openHAB-Installation unter configurations/openhab.cfg verwaltet:

fritzboxtr064:url=https://192.168.178.1:49443
# alternativ fritzboxtr064:url=http://192.168.178.1:49000

fritzboxtr064:refresh=60000

#fritzboxtr064:user=openhab

fritzboxtr064:pass=PasswortDerFritzBox

Wird ein Benutzer angegeben muss dieser auf der Box vorher erstellt werden. Items werden unter configurations/items/ in der Items-Datei wie folgt eingebunden:

Group Phone             (gALL)  // FritzBox

String  fboxName                "FBox Model [%s]"                       (Phone)         {fritzboxtr064="modelName"}
String  fboxWanIP               "FBox WAN IP [%s]"                      (Phone)         {fritzboxtr064="wanip"}
Switch  fboxWifi24              "2,4GHz Wifi"                           (Phone)         {fritzboxtr064="wifi24Switch"}
Switch  fboxWifi50              "5,0GHz Wifi"                           (Phone)         {fritzboxtr064="wifi50Switch"}
Switch  fboxGuestWifi           "Guest Wifi"                            (Phone)         {fritzboxtr064="wifiGuestSwitch"}
Contact cFboxMacOnlineUSR0    "Benutzer 0 [MAP(presence.map):%d]"    (Phone)         {fritzboxtr064="maconline:00-11-22-33-44-55" }
Contact cFboxMacOnlineUSR1    "Benutzer 1 [MAP(presence.map):%d]"    (Phone)         {fritzboxtr064="maconline:11-22-33-44-55-66" }

// only when using call monitor
Switch  fboxRinging             "Klingeln eingehend [%s]"               (Phone)         {fritzboxtr064="callmonitor_ringing" }
Switch  fboxRinging_Out         "Klingeln ausgehend [%s]"               (Phone)         {fritzboxtr064="callmonitor_outgoing" }
Call    fboxIncomingCall        "Anruf eingehend: [%1$s to %2$s]"       (Phone)         {fritzboxtr064="callmonitor_ringing" }
Call    fboxOutgoingCall        "Anruf ausgehend: [%1$s to %2$s]"       (Phone)         {fritzboxtr064="callmonitor_outgoing" }

// resolve numbers to names according phonebook
Call    fboxIncomingCallResolved "Anruf eingehend: [%1$s to %2$s]"      (Phone)         {fritzboxtr064="callmonitor_ringing:resolveName" }

// Telephone answering machine (TAM) items
// Number after tamSwitch is ID of configured TAM, start with 0
Switch  fboxTAM0Switch          "Anrufbeantworter ID 0"                (Phone)         {fritzboxtr064="tamSwitch:0"}
Number  fboxTAM0NewMsg          "Neue Nachricht AB 0 [%s]"               (Phone)         {fritzboxtr064="tamNewMessages:0"}

// Missed calls: specify the number of last days which should be searched for missed calls
Number  fboxMissedCalls         "Verpasste Anrufe [%s]"                     (Phone)         {fritzboxtr064="missedCallsInDays:5"}

Zum Anzeigen wird die gesamte Gruppe (s.o. Group Phone) in der Sitemap unter configurations/sitemaps/ eingebunden:

        Frame label="Telefon/Internet" {
                Group   item=Phone      label="Telefon/Internet"        icon="phone"
        }

Have fun!

DHCP – Failover und Synchronisation

Vorwort

In früheren Beiträgen habe ich bereits erläutert, wie ein DHCP-Server aufgesetzt wird, jetzt soll ein zweiter DHCP-Server für Ausfallsicherheit sorgen.

ISC DHCPD unterstützt Failover und Synchronisation der Leases. Die Konfiguration wird mittels rsync synchronisiert. DHCP – Failover und Synchronisation weiterlesen

openHAB Astro-Binding

Einleitung

In diesem Beitrag beschreibe ich den Einsatz des Astro-Bindings. Damit ist es möglich, verschiedene Informationen zu Sonnenauf- und Untergang, Jahreszeiten, Tierkreiszeichen oder Mondphasen darzustellen oder für Regeln zu nutzen. openHAB Astro-Binding weiterlesen

Stefan Kraus' WordPress-Blog