Installieren der Linux bash unter Windows

2016 hatte Microsoft auf der Entwicklerkonferenz angekündigt, dass die Linux Shell bash künftig auch unter Windows 10 zur Verfügung stehen wird (Eigentlich ist es sogar mehr als nur die Shell: Es wird das gesamte von Canonical zur Verfügung gestellte Ubuntu installiert!).

Voraussetzung ist Windows 10 mit allen Updates installiert. (Stand Okt 2016 ist das „Windows Subsystem for Linux“ nur als Beta zur Verfügung. Funktioniert jedoch schon tadellos)

Installation

Schritt für Schritt durch die Installation:

  • Öffnen Sie die „Einstellungen“ von Windows 10 und wählen „Update und Sicherheit“ aus.
  • Dort wechseln Sie in den Bereich „Für Entwickler“ und aktivieren den Entwicklermodus.
  • Anschließend rufen Sie die „Systemsteuerung“ auf und öffnen dort die „Programme“.
  • Wenn Sie nun „Windows-Features aktivieren oder deaktivieren“ wählen, öffnet sich eine Liste mit optionalen Features.
  • In dieser setzen Sie das Häkchen bei „Windows Subsystem for Linux“ und bestätigen Ihre Auswahl.
  • Anschließend starten Sie das System neu.
  • Starten Sie die Eingabeaufforderung (Drücken Sie die Windows Taste und geben sie „cmd“ ein)
  • Geben Sie nun den Befehl „bash“ ein und folgen Sie den Instruktionen
    • Benutzername: <bitte verwenden Sie nicht root sondern e.g. ihren Vornamen>
    • Passwort: <ihr geheimes Passwort>

Start der bash unter Windows

Die bash ist nun über das Startmenü erreichbar. (Drücken Sie die Windows Taste und geben sie „bash“ ein)

Ändern des defaultusers

Unter Windows Eingabeaufforderung geben Sie folgendes ein:

Geben Sie danach das neue Passwort ein.

Installieren von Linux Software

Öffnen sie die bash unter Windows und geben Sie den folgenden Befehl ein (um z.B arp-scan zu installieren):

 

Starten eines shell scripts unter Windows command line:

 

Zusätzliche Icons in openHAB einbinden

Zusätzliche Icons in openHAB einzubinden ist denkbar einfach. Sie müssen lediglich die Icons in das Verzeichnis conf/icons/classic einspielen. Anhand des Dateinamens können sie die Icons ganz einfach verwenden.

Die Icons sind eines von folgenden Formaten:

  • png (32×32) – Es können jedoch auch größere, quadratische Icons in png verwendet werden.
  • svg

Sowohl classic UI als auch Basic UI können konfiguriert werden eines der beiden Formate zu akzeptieren.

Die aktuellen Icons finden Sie hier:

 

 

Aktienkurse in openHAB einbinden

Zweck

Wenn Aktienkurse in openHAB eingebunden werden kann man viele hilfreiche Dinge und auch Spielereien in die Hausautomatisierung einbauen. Zum Beispiel kann man basierend auf Aktienkurse:

  • Jeden Morgen eine Information per E-Mail versenden
  • Sende eine E-Mail wenn sich der Kurs stärker verändert

Installation

Zur Zeit (September 2016) gibt es noch kein entsprechendes Binding welches man installieren könnte.

Information

Es gibt natürlich diverse Schnittstellen um Börsenkurse über eine API abzufragen. Ich verwende aktuell die beiden von Yahoo und Google:

Unglücklicherweise sind die APIs nicht offiziell dokumentiert. Weiters könnten die APIs ohne Vorankündigung abgedreht werden. Last but not least sind die Daten immer 15 Minuten hinter dem aktuellsten Börsenwert. (absichtliche Zeitverzögerung)

Somit ist meine Art Aktienkurse in openHAB einzubinden nicht voll unterstützt. Die APIs funktionieren jedoch schon seit Jahren sehr verlässlich.

Konfiguration

Erstellen Sie im Verzeichnis conf/items die Datei stock.items mit folgendem Inhalt:

Erstellen Sie nun im Verzeichnis conf/rules die Datei stock.rules mit folgendem Inhalt:

Ergänzen Sie im Verzeichnis conf/sitemaps die Datei standard.sitemap um folgenden Inhalt:

 

Google API für Aktienkurse

Eine Anwendung der Google API würde folgendermaßen aussehen:

http://finance.google.com/finance/info?client=ig&q=NASDAQ%3AGOOGL

 

Tipps und Tricks

openHAB Kommandozeile (Karaf)

Stoppen

Drücken Sie Strg-D (bzw. CTRL-D) um openHAB zu beenden.

Logging

Um den openhab.log direkt auf der Konsole zu haben geben Sie folgendes ein:

Sie verlassen den logging-Modus indem Sie Strg-C (bzw. CTRL-C) drücken.

In laufende Session einloggen

Unter Windows:

Unter Synology NAS:

Unter Linux:

Ist ähnlich.

 

Danach tippen sie einfach ihre Befehle. z.B.:

 

Logging und debugging der openHAB Rules

Zweck

Beim sowohl beim Einfügen ihrer Bindings, Things und Items als auch beim Schreiben ihrer Rules ist für die mögliche Fehlersuche immer wichtig auf die logging Information zugreifen zu können.

openHAB aus Shell gestartet

Wenn Sie openHAB als Konsole gestartet haben (Karaf) und nicht als Service, können Sie direkt in die Konsole loggen:

Um die openhab.log Daten direkt in der Konsole live zu sehen geben sie an der Konsole folgendes ein:

beziehungsweise:

openHAB als Service installiert

Sie können sich per Karaf in die laufende Session einloggen. Dann haben Sie eine eigene Konsole. Wie das geht finden Sie unter Tipps und Tricks.

 

Alternativ verwenden Sie stattdessen folgendes:

In diesem Fall erscheint das Logging im openhab.log.

Log Dateien

Die Log Dateien sind bei ihrer Installation in folgendem Verzeichnis:

Was wird derzeit geloggt

Geben Sie folgenden Befehle in:

 

Logging für ein bestimmtes Modul einschalten

z.B. für das Binding http

oder hier für my.openHAB

Je nachdem wie viel sie Sehen wollen müssen Sie einen der folgenden Levels auswählen:

  1. ERROR(Nur bei Fehlern)
  2. WARN (Bei Fehlern und bei Warning)
  3. INFO (Bei Fehlern bei Warning und bei Info)
  4. DEBUG (alles was man loggen kann)

Sie können auch das config file bearbeiten (ACHTUNG NUR MIT VORSICHT GENIEßEN). In diesem Fall wird das Logging vom Start an entsprechend der Konfiguration verwendet:

Auf der Synology NAS:

Auf Windows:

ähnlich

Auf Linux:

ähnlich.

 

Nach der Änderung müssen Sie openHAB neu starten.

 

Weiterführende openhab Links

Auf dieser Seite habe ich einige hilfreiche openHAB Links für Sie ausgewählt und nach Themen sortiert. Dabei habe ich mich vor allem auf die offiziellen Seiten die mir im Laufe meiner openHAB Arbeiten wichtig und hilfreich waren beschränkt.

Offizielle Seiten

Offizielle openHAB Seiten und Tools.

openHAB Homepage
Das Zentrum aller openHAB Informationen.

openHAB Foundation
Dachorganisation über openhab.

my.openHAB
Um auf openHAB auch aus dem im Internet zugreifen zu können.

Eclipse Smarthome Designer

Eclipse SmartHome und der dazugehörige Designer sind mit openHAB verwandt. Im speziellen der Designer ist hilfreich bei der Konfiguration von openHAB.

Software

Sourcen, Releases, Informationen zu den letzten Änderungen und Feature Requests.

openHAB Maven
Hier stehen die Sourcen und aktuellen Installations-Dateien.

openHAB Git
openHAB Addons letzte Änderungen

openHAB 2-addons Git
openHAB Addons letzte Änderungen im Snapshot

Eclipse Smarthome Git
Eclipse Smarthome letzte Änderungen im Snapshot

Smarthome @ Eclipse Projects
H
ier können Sie einsehen, wie viele Commits es aktuell zum Projekt gibt. (Wie aktiv ist dieses Open Source Projekt)

 

Dokumentation

Dokumentation zu openHAB 2.

Dokumentation
Wiki für openHAB 2 in englischer Sprache.

Cron – Notation für Regeln in openHAB 2

Über sogenannte Cron Regeln können Sie bei den openHAB Rules einstellen wie oft eine Regel aufgerufen werden soll.

Allgemein

Cron ist ein Dienst unter Linux, der den regelmäßigen Start von Skripten veranlasst. Unter openHAB benötigen wir die Cron – Notation um Regeln zu bestimmten Zeiten zu starten.

Cron besteht aus 6 Parametern und einem anschließenden Fragezeichen (Minute, Stunde, Tag, Monat, Wochentag) in einer Zeile mit je einer Zeichenkette notiert. Die einfachste Zeile „* * * * * * ?“ bedeutet: zu jeder Sekunde in jeder Stunde an jedem Tag … ALSO: jede Sekunde

Zusammengefasst bedeutet die CRON Zeile folgendes:

 

Beispiele

Fünf Minuten nach jeder vollen Stunde zwischen 9 und 20 Uhr (also 9:05, 10:05, …, 20:05)

 Notation Beschreibung
* * * * * ? Jede Sekunde
0 * * * * ?“ Jede Minute
0,10,20,30,40,50 * * * * ? Alle 10 Sekunden
*/10 * * * * ? Andere Notation für alle 10 Sekunden
0 5 9-20 * * * ?
0 */10 * * * * ? Alle 10 Minuten
0 59 23 * * 0,4 ? Jeden Sonntag und Donnerstag um 23:59
0 0 0 * * * ? Jeden Tag Punkt Mitternacht 00:00 Uhr

 

Begriffe der Home Automation

FHEM

FHEM ist ein auf Perl basierter Server für die Hausautomatisierung und somit ein System das mit openHAB vergleichbar ist.

KNX

KNX ist ein offener Standard für den Bereich Haus- und Gebäudesystemtechnik. In der KNX Association (Verein) wurden mehrere Standards zusammengeführt und der offene Standard KNX entwickelt.

OpenWrt

OpenWrt ist eine Firmware für WLAN Router (und noch mehr) für Heimanwender und im semi professionellen Bereich, die es dem Anwender erlauben, den Router sehr weitläufig zu konfigurieren und die ursprünglichen Funktionen der originalen Firmware um ein Vielfaches zu erweitern. OpenWrt bietet unter anderem:

  • ein voll beschreibbares Dateisystem
  • den Paketmanager opkg
  • VPNs mit OpenVPN
  • VoIP mit Asterisk
  • Firewall – Funktionalität
  • Shell zugang und somit die Möglichkeit Scripts zu realisieren

OSGi

Die Open Service Gateway Initiative (OSGi) beinhaltet eine Reihe von Spezifikationen, die ein „Baukastensystem“ für Java beschreiben. OSGi ermöglicht ein Konzept in der Softwareentwicklung, bei der Anwendungen dynamisch aus vielen verschiedenen Komponenten zusammengesetzt sind. Aus diesem Grund ist es möglich, Funktionen während der Laufzeit hinzuzufügen oder zu entfernen, ohne die Anwendung zu stoppen. Mehrere bekannte Anwendungen, einschließlich der Java-IDE NetBeans und WebSphere Application Server von IBM basieren auf OSGi.

Auch openHAB verwendet OSGi um zusätzliche Komponenten (wie die Bindings) während der Laufzeit einzubinden.

REST

Representational State Transfer (REST) ist ein Software-Architekturstil zum lesen, erstellen, aktualisieren oder löschen von Informationen auf einem Server unter Verwendung von Standard-HTTP-Anrufe. Es bietet eine einfache Alternative zu anderen Web-Service-Mechanismen wie das Simple Object Access Protocol (SOAP) oder Remote Procedure Call (RPC). Darüber hinaus werden bei REST keine Informationen vom aktuellen Zustand des Clients auf dem Server gespeichert.

openHAB erlaubt über das REST-Protokoll den Zugang auf Items und Sitemaps. Weiters kann man sich über REST bei openHAB anmelden „Updates zu Items“ zu empfangen.

Z-Wave

Z-Wave ist ein Kommunikationsprotokoll vergleichbar mit Bluetooth, WLAN oder GSM das dafür entwickelt wurde um Sensoren und Aktoren eines Home Automation Systems anzusteuern und auszulesen.

Mehr dazu unter: Z-Wave Alliance

Z-Wave-Plus

Z-Wave Plus ist ein neues Zertifizierungsprogramm der Z-Wave Allianz. Es wurde entwickelt, um Verbrauchern die einfache Möglichkeit zu geben, die Produkte mit „Next Gen“ Z-Wave zu erkennen. Z-Wave-Plus-zertifizierte Lösungen verfügen über zusätzliche Eigenschaften, welche die Benutzerfreundlichkeit und Funktion der Geräte gegenüber dem vorhergehenden Standard verbessern.

  • Erhöhung der Reichweite
  • Erhöhung der Bandbreite
  • Verbesserte Selbstheilung und Fehlertoleranz
  • längere Batterielaufzeit
  • Over The Air Update/Upgrade (OTA),
  • zusätzliche HF-Kanäle (für eine verbesserte Rauschunempfindlichkeit und höhere Bandbreite)
  • Plug-and-Play Aufnahmefunkion neuer Geräte in das bestehende Z-Wave Netz
  •  vollständig  rückwärts kompatibel mit vorhandenen Z-Wave-Produkte

 

Die openHAB Verzeichnisstruktur

Die openHAB Installation wurde von ihnen je nach Betriebssystem in folgendem Verzeichnis installiert:

  • Linux im Verzeichnis /opt/openhab2
  • Windows im Verzeichns C:\openHAB\openhab2

Das war auch schon der gesamte Unterschied bei openHAB zwischen Windows und Linux.

Folgende Unterverzeichnisse sind nun vorhanden:

 

./ im Hauptverzeichnis befindet sich start.sh (für Linux) bzw. start.bat (für Windows)
addons Für unsere Zwecke nicht wichtig.
conf Hier steckt die gesamte Konfiguration.
runtime Für unsere Zwecke nicht wichtig.
userdata Hier finden sie die log-Dateien und andere wichtige Aspekte

Das conf Verzeichnis

./ das conf Verzeichnis hat keine Dateien
html noch nicht interessant
icons noch nicht interessant
items Hier befinden sich die items
persistence Hier befinden sich die Konfigurationen für die Speicherung von Daten (persistence)
rules Hier befinden sich die Regeln
scripts noch nicht interessant
services Hier wird openHAB konfiguriert:

  • addons.cfg … bei Neuinstallation werden die hier konfigurierten Addons automatisch installiert.
  • basicui.cfg … hier können Sie die default-Sitemap für das Basic UI konfigurieren
  • classicui.cfg … hier können Sie die default-Sitemap für das Classic UI konfigurieren

Hier sind viele der Services konfiguriert. (e.g. Wenn sie das xbmc-Binding installieren erscheint hier die Datei xbmc.cfg.)

sitemaps Hier befinden sich die Sitemaps
things Hier befinden sich die Things
transform Hier befinden sich die Transformationen

 

Das userdata Verzeichnis:

./ uuid … beinhaltet die uuid der Installation. Diese wird für my.openHAB benötigt.
logs Hier befinden sich die Log Dateien:

events.log

openhab.log

myopenhab secret … beinhaltet das Secret der Installation. Diese wird für my.openHAB benötigt.
alle anderen Alle anderen Verzeichnisse sind für unsere Zwecke nicht interessant.

Unterschied zwischen Wireless Router und Wireless Access Point

Der Internet Zugang

In einem Netzwerk zu Hause oder in einem Unternehmen darf mittlerweile das WLAN (Wireless LAN = Wireless Local Area Network) nicht fehlen. Sie benötigen es für Handy, Tablet, Cromecast, Fire TV Stick aber auch um mit ihrem Laptop mobil zu sein.

Ihren Internet Zugang bekommen Sie üblicherweise auf folgende Art:

Internet Zugang mittels ADSL

Die Vermittlungsstelle des Providers bringt per Glasfaser breitbandiges Internet mittels Glasfaser zu den Verzweigern. Dort wird von Glasfaser auf Kupfer umgewandelt und mittels ADSL/VDSL die Daten über die Kupfer-Telefonleitung an ihr Modem übermittelt.

Dieses Modem ist nun IHR sogenanntes „Provider Gateway“. Dies beinhaltet üblicherweise

  • WAN: ADSL ode VDSL oder Calbe auf der einen Seite und
  • LAN: Ethernet (per RJ45 Port) und WLAN auf der anderen Seite

WLAN im eigenen Netz

Ich empfehle immer das WLAN des Provider Gateways auszuschalten und ein eigenes WLAN Gerät zu kaufen.

DHCP im eigenen Netz

Wenn Sie schon dabei sind und das WLAN am Provider Gateway abschalten, können Sie sich auch gleich Gedanken zu DHCP machen.

DHCP vergibt die IP Adressen in ihrem Netz. Sobald Sie ein Gerät per Kabel oder WLAN an ihr Netz anschließen wird ihrem neuen Gerät eine IP Adresse zugewiesen. Dies passiert per DHCP!

Da ich im Netz für die wichtigeren Daten eine NAS betreibe, überlasse ich der NAS diese Aufgabe und schalte (nachdem ich DHCP auf der NAS konfiguriert habe) das DHCP am Provider Gateway ab.

Wireless Router vs. Wireless Access Point

Im Zusammenhang mit WLAN werden oft die Begriffe „Wireless Router“ bzw. „Wireless Access Point“ verwendet.

Zunächst ist es wichtig zu verstehen dass ein Wireless Router zwei Dinge beinhaltet: Nämlich den Router und den Wireless Access Point

Somit ist der Wireless Access Point ein Gerät, der nur WLAN, jedoch keine Router Funktionalität beinhaltet.

Was bedeutet das?

Will ich lediglich meine WLAN Geräte in das Netz einbinden, genügt ein Wireless Access Point (das wäre schon mal die wichtigste Basis)

DHCP, NAT, Bandbreitenbeschränkung, etc. gibts nicht auf dem Gerät.

Die Router Funktionalität beinhaltet dies. Sie können (was ich nicht mache) auch ein DHCP einrichten, dass den WLAN Geräten einen eigenen IP Address-Space zur Verfügung stellt.

Oft können Sie per USB auch Drucker anhängen oder auch einen Media Server u.v.a.m.

Unterm Strich:

  • WLAN ist die wichtigste Funktion und ich persönlich bevorzuge alle anderen Funktionen innerhalb der NAS.
  • Reine Wireless Access Points gibt es kaum / nicht zu kaufen. Allerdings haben einige Geräte weniger „Software Funktionalität“ als andere. Ich jedenfalls gebe keinen Groschen mehr aus um bei gleicher Hardware mehr Funktionalität zu bekommen. (Weil ich sie ohnehin nicht am Access Point benötige)
  • Will man mehr Funktionalität und eine bessere Einbindung in Home Automation ist aus meiner Sicht ein WLAN Router zu bevorzugen, auf dem man OpenWrt oder DD-WRT installieren kann.