Smart Home – openHAB 2 Enigma2 Integration

Smart Home – openHAB 2 Enigma2 Integration

Dieser Beitrag beschreibt wie ihr in openHAB 2 Enigma2 Boxen wie z.B. eine VU, Octagon, Xtrend oder Gigablue integriert. Es wird Schritt für Schritt beschrieben wie ihr Kommandos wie z.B. Stumm schalten oder andere an die Enigma Box sendet. Weiterhin wird beschrieben wie aktuelle Informationen angezeigt werden z.B. aktueller Sender oder aktuelles Programm. Als weiteren Integrationspunkt erfahrt ihr wie Ihr eine Meldung an die Box sendet, so dass ihr z.B. über wichtige Informationen aus Eurem Smart Home direkt im Bilde seid. Das ganze funktioniert per HTTP Binding und und RegEx Transformation. Einzige Voraussetzung für die Box ist ein Betriebssystem mit openWebIf. Ich nutze auf meiner Box noch openATV 4.2. Die Version ist zwar alt aber läuft bei mir super zuverlässig und daher gibt es für mich keine Grund ein Update zu machen.

Smart Home – openHAB 2 Enigma2 Hardware

Wie bereits angedeutet könnt ihr im Grunde jede Enigma2 Box steuern. Ich habe mich vor einiger Zeit mal auf die Suche nach einer guten Enigma2 Box gemacht.  Folgende Boxen kamen in die engere Auswahl. Ich finde die Boxen immer noch sehr gut.

Enigma2 Box DVB-S2 (SAT)

  • Produkt
  • Features
  • Fotos

VU+ Duo² 2x DVB-S2 Tuner PVR Ready Twin Linux Receiver Full HD...

Versandfertig in 1 - 2 Werktagen
Last update was in: 25. February 2017 22:33 CET

349,00

Kaufen
amazon.de
  • Produkt
  • Features
  • Fotos

GigaBlue HD Quad PLUS schwarz 2x DVB-S2 HDTV Linux HbbTV LAN Sat...

Gewöhnlich versandfertig in 24 Stunden & Versandkostenfrei
Last update was in: 25. February 2017 22:33 CET

319,00

Kaufen
amazon.de

Enigma2 Box DVB C/T2 (Kabel/Antenne)

  • Produkt
  • Features
  • Fotos

GigaBlue HD Quad Plus Linux HDTV Receiver + 1x Hybrid Tuner DVB/C...

Versandfertig in 1 - 2 Werktagen
Last update was in: 25. February 2017 22:33 CET

289,90

Kaufen
amazon.de
  • Produkt
  • Features
  • Fotos

VU+ Duo² 2x DVB-C/T2 Tuner PVR Ready Twin Linux Receiver Full HD...

Gewöhnlich versandfertig in 24 Stunden & Versandkostenfrei
Last update was in: 25. February 2017 22:33 CET

369,00

Kaufen
amazon.de

Ich persönlich habe mich für eine Gigablue HD Quad Plus entschieden. Das Modell ohne Festplatte reicht eventuell auch, da ihr auch direkt auf eine NAS aufnehmen könnt. Ich betreibe die Gigablue an einer Synology Diskstation und dies läuft sehr zuverlässig und die Aufnahmen stehen so direkt im Netzwerk zur Verfügung. Auf den folgenden Boxen könntet ihr auch direkt openHAB installieren.

Synology Diskstation

  • Produkt
  • Features
  • Fotos

Synology DS216PLAY NAS-System

Gewöhnlich versandfertig in 24 Stunden & Versandkostenfrei
Last update was in: 25. February 2017 22:33 CET

242,00

Kaufen
amazon.de
  • Produkt
  • Features
  • Fotos

Synology DS216+ 2-Bay NAS-Gehäuse

Gewöhnlich versandfertig in 24 Stunden & Versandkostenfrei
Last update was in: 25. February 2017 22:33 CET

332,90

Kaufen
amazon.de
  • Produkt
  • Features
  • Fotos

Synology DS216 2-Bay NAS-Gehäuse

Gewöhnlich versandfertig in 24 Stunden & Versandkostenfrei
Last update was in: 25. February 2017 22:33 CET

269,00

Kaufen
amazon.de
Werbung

openHAB 2 Enigma2 – Paper UI Binding und Transformation

openHAB 2 Enigma2 Konfiguration – HTTP Binding

Ihr installiert als erstes das HTTP Binding über die Paper UI. Ruft Extensions und Bindings auf.

Im Anschluss installiert das Binding mit einen Klick auf Install neben dem Binding. Hat alles geklappt, sieht es wie folgt aus.

openhab-2-engima2-http-binding

 

openHAB 2 Enigma2 Konfiguration – RegEx Transformation

Klickt nun auf auf Transformations und installiert weiterhin die RegEx Transformation.

openhab-2-engima2-regex-transformation

openHAB 2 Enigma2 Konfiguration – SmartHome Designer

Zur Steuerung über openHAB 2 benötigen wir nun entsprechende Items, die Anpassung der Sitemap und Regeln.

openHAB 2 Enigma2 – SmartHome Designer Item

Legt am besten wieder eine in Eurer Items Konfiguration eine Gruppe an, in der ihr die Funktionen bündelt.

Im Anschluss definiert ihr die Items. Die ersten beiden Items holen per HTTP Request und RegEx Transformation die Informationen aus OpenWebIf. Hier gibt es sehr viele Möglichkeiten auf Informationen aus der Enigma2 Box zuzugreifen. Unter folgendem Link findet ihr eine gute Referenz zum Webinterface. Das zweite Item löst eine Regel aus, die später erklärt wird.

Doch was passiert hier in den ersten beiden Items?

  • Der erste Teil ist der HTTP Request über das HTTP Binding { http=“<[]“ } führt das HTTP Binding aus und liefert den Wert (<) der URL in den eckigen Klammern an das Item zurück
  • http://<ENIGMA_BOX_IP>:<PORT>/web/getcurrent ist die eigentliche URL, die einen XML formatierten Text aus OpenWebIf zieht.
  • der folgende Teil  „:3000:REGEX(.*?<e2eventname>(.*?)</e2eventname>.*)“ ist erst mal sehr kryptisch und nicht gerade selbsterklärend. Diese Passage sorgt dafür, dass per RegEx Transformation der entsprechende Inhalt aus der XML extrahiert und an das Item als Wert übergeben wird.
Zur besseren Erklärung gibt es ein kleineres Beispiel. Wird die URL http://<ENIGMA_BOX_IP>:<PORT>/web/vol aufgerufen, so erhaltet ihr gemäß Referenz zum Webinterface folgenden XML Text.

Nun besteht die Möglichkeit die Werte aus der XML Struktur herauszulesen. Hierfür wird der Text aus dem Element gelesen, in dem ihr die entsprechende Syntax eingebt. Wollen wir z.B. den Status „Stumm“ in openHAB anzeigen, würden wir folgenden Syntax verwenden.

Dies sorgt dafür, dass der gesamte Inhalt zwischen <e2ismuted> und </e2ismuted> gelesen wird. Die Syntax ist nicht ganz einfach aber logisch aufgebaut. Folgende Hilfestellungen kann ich Euch empfehlen. Im Wiki zum Thema Regulärer Ausdruck findet ihr allgemeine Informationen zum Thema. Auf der Seite RegEx 101 ist ein sehr nütlziches Tool zum Testen Eurer Abfragen. Hier gibt es auch Beispiele.

Geht im Tool wie folgt vor.

openhab-2-engima2-regex-interpreter

  1. Wählt auf der rechten Seite bei Flavor den Punkt pyhton aus. Dies erspart sogenannte Escapezeichen, die ihr beim Beispiel oben für den Slash verwendet müsst, wenn ihr nicht umstellt.
  2. Tragt den RegEx Ausdruck ein. In unserem Fall:
  3. Tragt den RegEx Text ein, aus dem ihr lesen wollt.
  4. Schaut Euch das Ergebnis an. Hier seht ihr das Ergebnis in den Klammern als Group 1. Die Engima2 Box wäre in diesem Fall nicht Stumm (ismuted = False)

openHAB 2 Enigma2 – SmartHome Designer Sitemap

Bindet innerhalb eines Frames in Eurer Sitemap nun die Gruppe ein.

Sobald ihr dies getan habt seht ihr auch schon die Items innerhalb der Gruppe mit den entsprechenden Werten, wenn Eure Enigma2 Box angeschaltet ist.

openhab-2-engima2-items

 openHAB 2 Enigma2 – SmartHome Designer Regel

In den nächsten beiden Kapitel wird eine Regel zum Senden eines Kommandos und zum Senden einer Nachricht definiert.

 openHAB 2 Enigma2 Regel – Kommando senden

Unten seht ihr die Regel für das dritte Item GB_sendMute. Immer wenn dieses Item ein Kommando erhält, wird die Regel ausgeführt. Wenn das Kommando ON (case ON 🙂 oder OFF (case OFF 🙂 ist, wird das HTTP Reguest sendHttpGetRequest(„http://192.168.0.219:219/web/vol?set=mute“) gesendet. Dies sorgt nun dafür, dass Eure Enigma2 Box stumm geschaltet wird. Es ist in beiden Fällen das gleiche HTTP Request. So wird zwischen stumm / nicht stumm umgeschaltet, sobald der Schalter in der Sitemap betätigt wird.

 openHAB 2 Enigma2 Regel – Sprachsteuerung

Folgendes Video demonstriert die Steuerung einiger Befehle per Sprachsteuerung. Wie ihr die Sprachsteuerung realisiert lest ihr im Beitrag Smart Home – openHAB 2 Sprachsteuerung Konfiguration.

 

Zur Steuerung der Enigma 2 Box per Sprache openHAB nutz z.B. folgendes Item.

Nun hinterlegt ihr noch eine entsprechende Regel.

Sobald das Item einen Befehl erhält, wird die Regel ausgeführt. Wird das Kommando AN empfangen, schalte ich per HTTP Request die Box um. So könnt ihr Eure Box komplett per Sprache steuern.

 openHAB 2 Enigma2 Regel – Nachricht senden

Auch für das Senden einer Nachricht verwenden wir eine Regel. Ich habe mir hier Folgendes überlegt. Wenn ich entspannt und vertieft vor der Glotze sitze, kriege ich nicht mit, wenn jemand kommt. Daher wird überprüft, ob der Bewegungsmelder auf der Einfahrt auslöst. Wenn dies der Fall ist, sende ich eine entsprechende Nachricht an die Box und sehe es auf dem Fernseher. Über eine Webcam kann ich mir dann überlegen, ob der Weg zur Tür lohnt. =)


Euch gefällt der Blog? Ich freue mich, wenn ihr für den Blog abstimmt. Unten sind ein Paar links zu Blog – Verzeichnissen. Danke und bis bald.
Werbung
20 Comments
  1. Reply
    Lars 27. November 2016 at 16:20

    Hi,
    ich komme mit der Anleitung leider nicht zurecht. Ist alles schön beschrieben aber ich bin wohl noch nicht soweit.
    Ich wollte erst einmal Power über das WebUi schalten können.

  2. Reply
    Markus 9. Dezember 2016 at 14:29

    Hallo Thomas

    Ich lese seit geraumer Zeit deine Anleitungen im Bereich openhab2.
    Deine Artikel haben mir den Einstand erheblich erleichtert. Dafür erst einmal vielen Dank !

    Nun habe ich nach Anleitung meine Vu+ eingebunden. Nur leider bekomme ich keine Werte angezeigt bei Sendung und Kanal. Und das obwohl im Log folgendes steht:

    14:21:48.498 [INFO ] [marthome.event.ItemStateChangedEvent] – GB_Kanal changed from NULL to ProSieben HD
    14:21:48.523 [INFO ] [ome.event.GroupItemStateChangedEvent] – Gigablue changed from NULL to UNDEF through GB_Kanal
    14:21:48.622 [INFO ] [marthome.event.ItemStateChangedEvent] – GB_Sendung changed from NULL to Two and a Half Men

    Wie ich das verstehe, bekommt er zwar die richtigen Werte, zeigt sie mir aber trotzdem nicht an.

    Vielleicht hast du ja eine Idee. Wäre dir sehr dankbar.

    Gruss Markus

    • Reply
      Thomas Schwarz 9. Dezember 2016 at 14:56

      Hallo Markus,

      vielen Dank. Freut mich, wenn es hilft.

      Richitg, das Log sieht doch schon gut aus. Wie hast Du deine Sitemap aufgebaut? Auch per Gruppe wie im Beispiel?
      Versuch aber auf jeden Fall mal
      1. einen Refresh der Seite. In Chrome z.B. STRG + F5 und auch den Kanal ruhig noch mal umschalten.
      2. aller letzte Möglichkeit. Getreu dem Motto Reboot tut gut. Starte openHAB mal neu.

      Grüße
      Thomas

      • Reply
        Markus 9. Dezember 2016 at 15:09

        Ich hab zum Testen erstmal genau nach deiner Anleitung gearbeitet.
        Dort nur die IP Adresse / Port angepasst.

        Meine Items:
        String GB_Sendung „Aktuelle Sendung“ ( Gigablue ) { http=“<[http://10.0.0.5:80/web/getcurrent:3000:REGEX(.*?(.*?).*)]“ }
        String GB_Kanal „Sender“ ( Gigablue ) { http=“<[http://10.0.0.5:80/web/getcurrent:3000:REGEX(.*?(.*?).*)]“ }
        Switch GB_sendMute „Mute“ ( Gigablue )

        In meine Sitemap:

        Group item=Gigablue label=“Gigablue“ icon=“projector_benq“

        Habe gerade festgestellt, dass wenn ich in der Gruppe Gigablue drin bin, dann den Sender wechsle, es dann angezeigt wird. Sobald ich dann wieder die „Unterseite“ Gigablue verlasse und anschliessend wieder rein gehe, fehlen die Werte wieder.

        Komisches Verhalten

        • Thomas Schwarz 9. Dezember 2016 at 21:08

          Hallo Markus,

          ach schön, nun wo Du es schreibst. Da fehlt tatsächlich noch ein kleines Detail. Pack bitte in das Label noch [%s]. So wird der Wert auch richtig entgegen genommen. Beitrag ist aktualisiert. Schau Dir die Item Defintion oben im Beitrag noch mal an. Danke für den Hinweis.

          Besten Gruß
          Thomas

  3. Reply
    Markus 12. Dezember 2016 at 8:16

    Hallo Thomas.

    Vielen Dank. Das hinzugefügte [%s] hat das Problem beseitigt. =)

    Beste Grüsse
    Markus

  4. Reply
    Thomas 12. Dezember 2016 at 15:14

    Hallo Thomas,

    Vielen Dank erstmal für die ausführlichen Anleitungen 🙂
    Helfen seeeehr weiter.

    Nur was ich nicht verstehe wie ich feststellen kann, ob mein Receiver manuell über die Fernbedienung gemuted habe.

    Brauche ich das irgendwas zum auslesen?

    Liebe Grüße
    Thomas

    • Reply
      Thomas Schwarz 12. Dezember 2016 at 19:48

      Hallo Thomas,

      steht im Grunde oben im Text. Kapitel „openHAB 2 Enigma2 – SmartHome Designer Item“. Versuch das noch mal zu verstehen. Ist nicht leicht. Aber ein Mal verstanden, stehen Dir alle Möglichkeiten offen.
      Iten Konfig sieht so aus.
      String GB_Mute „Gigablue Mute [%s]“ { http=“< [http://:/web/vol:3000:REGEX(.*?(.*?).*)]“ }

      Gib der UI 2 – 3 Sekunden, dort wird dann der extrahierte Text FALSE / TRUE angezeigt.

      Grüße
      Thomas

      • Reply
        Thomas 13. Dezember 2016 at 15:09

        Vielen Dank. Jetzt hab ichs überrissen 😀

  5. Reply
    Jens Wildner 28. Januar 2017 at 19:59

    Super Einstieg, Danke! Mir fehlt jedoch irgendwie die erklärung wie ich Sender wechseln kann. Habe mir jetzt hergeleitet, dass ich für jeden Kanal ein switchable item anlegen muss und dort auch den Sprachbefehl definiere. Das bedeutet ein Kanal ohne item lässt sich anhand seines namens nicht per sprachbefehl einschalten, richtig?

    viele grüße
    Jens

    • Reply
      Thomas Schwarz 29. Januar 2017 at 20:38

      Hey Jens,

      danke, hab das Item und die Regel für die Enigma 2 Sprachsteuerung oben ergänzt.

      Grüße
      Thomas

  6. Reply
    Lars 9. Februar 2017 at 19:39

    Hi,
    es fehlt vielleicht noch eine kleine Anleitung für das Harmony Hub. Ich beiße mir da gerade die Zähne aus, aber da gibt es viele Möglichkeiten.
    Ich kann jetzt schon umschalten, bin gerade an einer Regel dran um den Fernseher anzuschalten und dann auf den gewünschten Kanal zu springen…..

    Ach was ist das spannend 🙂

    • Reply
      Thomas Schwarz 9. Februar 2017 at 20:10

      Hey,

      ja, die fehlt mir selbst auch noch. Bin aber schon wieder an einem weiteren Projekt dran. Der Herr hat ein Broadlink RM Pro. Er wird mir ggf. für die Einrichtung ein Gerät schicken. Dann schreibe ich gleich einen Beitrag. Zwar kein Harmony, aber soll per HTTP Binding gehen.

      Grüße
      Thomas

      • Reply
        Christian Hage 9. Februar 2017 at 21:38

        Das geht auch mit einem ESP8266 und ner IR Diode für 6 Euro 😉
        Hab ich fünf Stück im Einsatz
        ESP Easy drauf, IR selektieren, einmal die Codes auslesen und… läuft!
        Ich hab 15 der Module im Einsatz für alles mögliche.. Und es werden immer mehr
        http://www.letscontrolit.com/wiki/index.php/ESPEasy
        Nächstes Projekt: Erkennen wenn die Waschmaschine fertig ist (per Vibrationssensor gemessen)

        • Thomas Schwarz 9. Februar 2017 at 21:51

          Hey Christian,

          Chapeau! Wie cool ist das denn =)

          Danke für den Tipp und deine Hilfe für die anderen Smart Homer!

          Beste Grüße
          THomas

  7. Reply
    Marcel 21. Februar 2017 at 20:55

    Hi,

    ich bastele das gerade nach und stehe aufn schlauch, wie ich beim umschalten „Kanalnummer 11“ per remote senden kann. Mehrere Komandos hintereinander zu senden funktioniert nicht….

    • Reply
      Lars 22. Februar 2017 at 11:40

      Hi,

      schalte auf keinen Fall die Kanäle über die Nummer. Ich habe die Service ID der Kanäle und das HTTP Binding genutzt das klappt super! Hat zusätzlich den Vorteil das die Kanäle auch nach einer Neusortierung noch gefunden werden.

      • Reply
        Marcel 26. Februar 2017 at 9:14

        Danke, das funktioniert.
        Aber wie kann ich jetzt einen Kanal hoch oder runterschauten?
        Bei deinem Trick bleibt die Kanalnummer immer die selbe, nur das Bild ändert sich – ist schwierig zu beschrieben. Lässt sich aber leicht mit ner Fernbedienung nachvollziehen….

      • Reply
        Thomas Schwarz 23. Februar 2017 at 7:28

        Hey Lars,

        sehr cooler Tipp. Da bin ich gar nicht drauf gekommen. Danke!

        Grüße
        Thomas

Hinterlasse einen Kommentar

One Smart Home - Ein Smart Home Blog