Smart Home – openHAB 2 Dash Button

Smart Home – openHAB 2 Dash Button

In diesem Beitrag geht es um das openHAB 2 Dash Button Binding. OliverLibutzki hat sich hinter das Thema geklemmt und ein Binding geschrieben. Das Binding ist bereits im aktuellen Snapshot enthalten. Ihr braucht auch diese neue Version, da hier ein Trigger Channel verwendet wird und es sonst nicht funktionieren wird. Oliver gab diesen Hinweis im letzten Beitrag zur Integration des Dash Button mittels Network Binding. In dem letzten Beitrag erfahrt ihr wie die Einrichtung des Dash Button mittels Amazon App funktioniert und wie ihr die IP im WLAN Router (Fritz Box) blockt, damit keine Kommunikation zu Amazon erfolgt. Bei Bedarf lest diese im alten Beitrag. 

Smart Home – openHAB 2 Dash Button – Hardware

openHAB 2 Dash Button – Hardware – Server

Ihr benötigt wie immer einen Server für openHAB. Im Beitrag Smart Home – openHAB 2 Installation und Konfiguration erfahrt ihr die nötigen Informationen wie ihr einen Server aufsetzt.

openHAB 2 Dash Button – Hardware –  Dash Button

Nun bestellt Euch einen Dash Button. Ich hatte bereits diesen empfohlen.

  • Produkt
  • Features
  • Fotos

Brabantia Dash Button

Gewöhnlich versandfertig in 24 Stunden & Versandkostenfrei
Last update was in: 20. August 2017 3:32

4,99

Kaufen
Amazon amazon.de

Der lässt sich mit ein wenig Aufwand anhübschen =)

smart-home-dash-button-label

Werbung

Smart Home – openHAB 2 Dash Button – Software

openHAB 2 Dash Button – Software

Windows – Chocolatey und WinPcap

Als erstes installiert ihr Chocolatey. Hierfür öffnet die Eingabeaufforderung als Administrator. Bei Windows 1o drückt einfach WINDOWS + X und wählt den Eintrag Eingabeaufforderung(Adminstrator). Falls ihr eine Installation auf einem anderen Betriebssystem durchführen wollt, lest in Dash Button Dokumentation nach.

 openhab-2-dash-button-chocolatey-shell

Kopiert nun folgende Zeile und drückt Enter.

Nach der Installation zeigt die Eingabeaufforderung folgendes:

openhab-2-dash-button-chocolatey-shell-install

Im Anschluss an die Installation von Chocolatey gebt folgenden Befehl in der Eingabeaufforderung ein.

Bestätigt mögliche Abfragen mit Y. Es wird eine Installationsroutine laufen und kurz erscheinen. Die Eingabeaufforderung gibt eine entsprechende Rückmeldung, dass alles erfolgreich war.

openhab-2-dash-button-choco-winpcap-install

openHAB 2 Dash Button – Software

Raspberry (z.B. openHABian) – libpcap

Auf dem Raspberry Pi müsst ihr eine andere Zusatzkomponente installieren. Mit den folgenden Schritten installiert ihr libpcap und setzt die entsprechenden Berechtigungen (Quelle: openHAB Dokumentation)

openHAB 2 Dash Button – Software – Paper UI Dash Button Binding

Die Installation des Binding funktioniert inzwischen auch über die Paper UI. Ruft diese entsprechend auf.

Im Anschluss drückt einfach auf den Knopf Eures Dash Button. Der Dash Button erscheint nach kurzer Zeit in der Inbox. Oliver! Wahnsinn! Drückt nun auf den blauen Kreis mit dem Haken.

openhab-2-dash-button-scan-things-dashbutton-inbox

 

Im darauf folgenden PopUp  vergebt nun einen Namen für den Dash Button und klickt auf „Add as Thing“. Ich nutze diesen für die zweite Hue am Schreibtisch, so dass ich Euch später eine Live Demo zeigen kann.openhab-2-dash-button-thing

openHAB 2 Dash Button – Software – SmartHomeDesigner Regel

Als letztes öffnet den Smart Home Designer und fügt eine entsprechende Regel ein.  Hier kommt der bereits erwähnte Channel Trigger zum Einsatz. Diese Regel reagiert auf das Channel Triggered Event . Um die Channel ID herausbekommen, navigiert in der Paper UI in Eure Things und drückt auf das Kreissymbol neben dem Dash Button.

openhab-2-dash-button-things

Im nächsten Bild erfahrt ihr die Channel ID. Kopiert diese für die Regel.

openhab-2-dash-button-channel-id

 

 

Die Regel baut nun wie folgt auf.

  • In der When Bedingung tragt Channel „<DASHBUTTON_ID> triggered ein.
  • Die Then Bedingung könnt ihr entsprechend anpassend und hier die Funktion des Dash Button festlegen. Musik auf dem Raumfeld Player starten, stoppen, Hue/KNX schalten. Alles kein Problem.

Hier mein Beispiel:

Kurze Anmerkung noch. Falls es Smart Home Designer eine Fehlermeldung „no viable alternative at input ‚Channel'“ ausgibt, funktioniert es trotzdem. Ihr solltet Euch dann die aktuelle Snapshot herunterladen.

openhab-2-dash-button-smart-home-designer

Viel Spaß mit Eurem 5€ Smart Home Schalter. =)

 

Werbung
24 Comments
  1. Reply
    Oliver Libutzki 2. November 2016 at 23:37

    Super! Vielen Dank für die tolle Dokumentation. Genau genommen, muss in der Rule die ID des Channels rein. Man kopiert sie sich am besten, indem man im Paper UI bis zu dem Thing und dem Channel navigiert und sie dann per Copy-Paste in die Rule kopiert.

    • Reply
      Thomas Schwarz 3. November 2016 at 7:27

      Hallo Oliver,

      danke für den Hinweis. War wirklich nicht gut erklärt und ich habe es angepasst. Schaust Du mal. Kriegt man den Fehler im Smart Home Designer noch weg? Spricht fehlt mir hier irgendwas? Library? Dann ist es hoffentlich rund.

      Beste Grüße
      Thomas

  2. Reply
    Oliver Libutzki 3. November 2016 at 9:00

    Hast du die entsprechende letzte Snapshot-Version des Designers?

  3. Reply
    Smart Home Dash Button 4. November 2016 at 7:31

    […] Es gibt inzwischen ein Dash Button Binding für OpenHAB 2. Dieser Weg ist noch einfacher und ich empfehle daher, im Beitrag Smart Home – openHAB 2 Dash Button weiterzulesen. […]

  4. Reply
    Smart Home openHAB 2 Konfiguration 12. November 2016 at 21:49

    […] Smart Home – openHAB 2 Dash Button […]

  5. Reply
    Alexander 15. Dezember 2016 at 21:51

    Danke für deine Anleitung.

    Ich habe den DashButton über die Binding erfolgreich in OpenHAB2 eingebunden. Meine Hue Bridge und meine 2 Lampen sind ebenfalls mit OpenHab verbunden. Alles wird in things angezeigt.

    Leider bekomme ich es nicht hin, dass bei betätigen des DashButtons eine Lampe angeht. Kannst du mir hier bei der Syntax weiterhelfen?

    • Reply
      Thomas Schwarz 16. Dezember 2016 at 7:30

      Hallo Alexander,

      wenn Du meine Regel von oben kopiert hast. Lege Dir ein Item mit folgender Syntax an.

      /* Dachgeschoss Licht */
      Color Licht_DG_Stehlampe "Dachgeschoss Stehlampe" ( DG ) { channel="" }

      Den Hue Channel kopierst Du Dir aus dem Thing der Hue Lampe, die Du schalten möchtest in der Paper UI. Den Namen des Items anpassen, falls Du dies auch in der Regel anders benennst. Ist ja wahrscheinlich keine Dachgeschosse Stehlampe bei Dir =)

      Beste Grüße
      Thomas

      • Reply
        Alexander 17. Dezember 2016 at 10:21

        Hallo Thomas,
        Dane für den Tipp. Hatte versucht direkt über den channel die Lampe anzusprechen. Jetzt funktioniert es. Mein Code sieht aktuell so aus.

        Switch Licht_Hue_Go_1 "Hue Go 1" ( Go1 ) { channel="hue:0210:0xxxxxxx:2:color" }

        rule "DashButon_Oral-B"
        when
        Channel "amazondashbutton:dashbutton:xxxxxxx:press" triggered
        then
        if (Licht_Hue_Go_1.state.toString == "ON") {
        Licht_Hue_Go_1.sendCommand(OFF)
        } else {
        Licht_Hue_Go_1.sendCommand(ON)
        }
        end

        Was genau kann man in der Klammer (Go1) definieren?

  6. Reply
    Lars 5. Januar 2017 at 15:17

    Hi,
    Nur mal eine Frage was wird denn auf dem DashButton installiert und wozu? Danke

    • Reply
      Thomas Schwarz 5. Januar 2017 at 20:47

      Hallo Lars, auf dem DashButton installiert werden muss nichts. Läuft mit dem Binding wie geschrieben ohne Hacks. Ich nutze meinen Dashbutton inzwischen für die Gartenbewässerung und Beleuchtung im Garten. BG Thomas

  7. Reply
    Lars 8. Januar 2017 at 17:52

    Hi,
    ahh du gehst davon aus, dass openhab auf einem Windows Rechner installiert wird? Was muss denn noch zusätzlich installiert werden wenn ich das auf einem PI laufen habe. Normalerweise ist ja mit dem Binding alles drin.

    • Reply
      Thomas Schwarz 8. Januar 2017 at 21:46

      Hallo Lars,

      ja, da für die meisten der Einstieg auf Windows am einfachsten ist, habe ich mich für Windows entschieden.

      Du brauchst pcap4j. Lies Dir mal die Doku von Oliver durch. Da steht etwas zu Debian/Ubuntu.
      http://docs.openhab.org/addons/bindings/amazondashbutton/readme.html

      Sonst mal googeln wie Du pcap4j auf dem Pi installierst.

      Grüße
      Thomas

  8. Reply
    Martin 8. Januar 2017 at 21:31

    Hallo Thomas,

    vielen Dank für die gute Anleitung.
    Leider scheine ich etwas falsch zu machen.
    Ich habe den Dash-Button eingerichtet (bzw. die Einrichtung abgebrochen) und er ist per PING verfügbar, wenn er gedrückt wird. Leider findet Openhab den Button nicht – in PaperUI kann ich nach Things suchen lassen, aber der Button taucht nicht auf.

    • Reply
      Thomas Schwarz 8. Januar 2017 at 21:57

      Hallo Martin,

      es gab ein Thema mit dem erkennen von Things in openHAB2. Kannst Du mal in der PaperUI Configuration -> System -> Item Linking kontrollieren. Ist hier Simple Mode eingeschaltet? Falls nicht, aktiviere mal.

      Notfalls auch openHAB noch mal neu starten.

      Grüße
      Thomas

      • Reply
        Martin Steffel 9. Januar 2017 at 22:07

        Hallo Thomas,
        Openhab startet wieder.
        Der Fehler (Start Fehler „code=exited status=127“) ließ sich durch folgenden Befehl beheben:
        setcap -r `realpath /usr/bin/java`
        anschließend habe ich folgenden Befehl ausgeführt, in der Hoffnung damit das Amazon Dash Binding wieder lauffähig zu machen.
        sudo setcap cap_net_raw,cap_net_admin=eip `realpath /usr/bin/java`
        Zur Sicherheit habe ich anschließend das Amazon Dash Binding deinstalliert und neu installiert.
        Trotz der Einstellung „Simple Mode“ für das Item Linking findet er die Dash Buttons nicht.
        Per PING sind beide erreichbar.

        Kann man die manuell hinzufügen oder bringt das nichts, weil sie dann auch beim späteren Drücken nicht erkannt werden?
        Wo kann man noch nach der Ursache des Problems suchen?
        Beste Grüße
        Martin

        • Martin Steffel 10. Januar 2017 at 14:10

          Hallo Thomas,

          ich komme leider nicht weiter. Wenn ich den beschriebenen Befehl
          sudo setcap cap_net_raw,cap_net_admin=eip `realpath /usr/bin/java`
          erhalte ich den Status-Code 127 und openhab startet nicht mehr.
          Wenn ich setcap -r `realpath /usr/bin/java`ausführe, startet Openhab aber im log erscheint der Fehler: ‚amazondashbutton:dashbutton:bef21845‘ changed from ONLINE to OFFLINE: The capturing for enp0s10f0 cannot be started.
          Ich vermute, es liegt an irgendwelchen Berechtigungen, bin aber hilflos.
          Hat jemand einen Tip?
          Viele Grüße
          Martin

        • Thomas Schwarz 11. Januar 2017 at 19:43

          Hallo Martin,

          kann Dir hier leider nicht helfen. Ich hatte mich aufgrund der einfacheren Installation für Windows entschieden. Da es stabil läuft, plane ich aktuell keine Nutzung des PI. Sorry.

          Vielleicht meldet sich einer der Kollegen mit dem Pi.

          Grüße
          Thomas

  9. Reply
    Martin 9. Januar 2017 at 9:30

    Hallo Thomas,
    danke für den Tipp. Da leider aktuell mein Openhab nicht mehr startet (Fehler-Code 127, hatte ich nach Installation des Amazon Dash Bindings schon mal) kann ich es im Moment nicht testen.
    Leider habe ich vergessen, was ich getan habe, um Openhab wieder zum Laufen zu bringen. Werde daher wohl ein paar Tage brauchen, bis ich den Tipp testen kann.
    Beste Grüße
    Martin

  10. Reply
    Sven 11. Januar 2017 at 20:53

    Hallo Thomas,

    danke für deine Anleitungen. Du hast mir den Einstieg in Openhab sehr erleichtert. Mit meinem Dash Button würde ich gerne zusätzlich zu einem Switch-Befehl eine Steckdose schalten.

    Ich habe Probleme mit der Syntax meiner Rule.

    Items:

    /EG Wohnzimmer Steckdose
    Switch eg_wz_steck „EG Wohnzimmer Steckdose“ (gWohnSteckEG, gSteckEG, gHausSteckdosen) {knx=“1/1/3″}

    Rule:

    rule „DB1_Wohnzimmer_Steckdose“
    when
    Channel „amazondashbutton:dashbutton:xxxxxxxxxxx:press“ triggered
    then
    if (eg_wz_steck.state.toString == „ON“) {
    eg_wz_steck.sendCommand(OFF)
    } else {
    eg_wz_steck.sendCommand(ON)
    }
    end

    Als Fehler wird angegeben, dass die Methode oder das Feld eg_wz_steck undifiniert ist.

    Was muss ich in den Items noch hinzufügen? Ich blicke da gerade nicht ganz durch.

    Gruß

    • Reply
      Thomas Schwarz 11. Januar 2017 at 21:56

      Hallo Sven,

      diese Meldung kommt auch, wenn das Item nicht bekannt war/ist. Hast Du die Item Datei gesichert? Falls ja, gehe noch mal in die Datei deiner Regel. Enter drücken, sichern.

      Hilft das?

      Grüße
      Thomas

      • Reply
        Sven 12. Januar 2017 at 18:02

        Hallo Thomas,

        ja, danke es funktioniert!
        Obwohl in meiner Rule immer noch angezeigt wird, dass es das Item nicht gibt.

        Gruß
        Sven

Hinterlasse einen Kommentar

One Smart Home - Ein Smart Home Blog