Ankündigung

Einklappen
Keine Ankündigung bisher.

Funksteckdosen schalten mit OpenHABianPi und OpenHAB 2

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Funksteckdosen schalten mit OpenHABianPi und OpenHAB 2

    Hallo,
    ich habe mir einen neuen Raspberry PI mit OpenHABianPi und OpenHAB 2 eingerichtet und nach dieser Anleitung (https://klenzel.de/1556) wieder send installiert um meine Funksteckdosen zu schalten.
    Die Items und Rules habe ich aus meiner alten OpenHAB 1.8 Installation übernommen.
    Jetzt habe ich das Problem, dass der Send-Befehl von der Konsole aus mit sudo send ..... funktioniert, aber ich die Funktion über die OpenHAB Oberfläche nicht schalten kann. Ohne sudo funktioniert der Befehl nicht. Kann mir jemand sagen, wie ich das hinbekomme, dass ich die Steckdosen ohne sudo wieder über OpenHAB ansteuern kann?

    Gruß Jan

    #2
    Der user openhab muss der Gruppe angehören, die die gpio bedienen darf. Du musst also mittels
    Code:
    sudo adduser openhab gpio
    den user der passenden Gruppe zuordnen.
    Zuletzt geändert von udo1toni; 21.02.2018, 20:42.

    Kommentar


      #3
      Nachdem das Ganze zwischenzeitlich geklappt hat, hat sich letzte Woche das System Aufgehangen. nach einem Neustart haben die Steckdosen wieder nicht funktioniert. Ich kann sie wieder nur über die Konsole mit sudo schalten. Setze ich den genannten Befehl ab, listet er mir nur eine Beschreibung des Befehls auf, gerade so, als wenn da noch etwas fehlen würde...

      Kommentar


        #4
        der Befehl muss auch nicht useradd heißen, sondern adduser... Ich habe das der Einfachheit halber oben geändert.

        Kommentar


          #5
          Ok, ich habe den geänderten Befehl eingegeben. Es kommt aber nun diese Meldung:The user `openhabian' is already a member of `gpio'.
          openhabian, weil dieser seit openhab2 wohl Standardmäßig so heißt.
          Trotzdem funktioniert es über die Bedienoberfläche nicht.
          Noch eine Idee?

          Kommentar


            #6
            Hab das Problem gefunden. Anscheinend wurde das alte Exec Binding deinstalliert. Das habe ich nun wieder installiert und nun geht es wieder.

            Kommentar


              #7
              Hallo,ich suche eine Beispiel Konfiguration wie eine Regel aussieht, damit eine Steckdose geschaltet wird. Hat jemand eine Beispiel Rule, die er hier Posten könnte?

              Kommentar


                #8
                DAS FUNKTIONIERT NICHT .-)

                rule "Funksteckdose Büro einschalten"
                when
                Item funkdose_2 changed from OFF to ON
                then
                sendCommand(sudo /opt/raspberry-remote/send 11010 2, 1)

                end

                Kommentar


                  #9
                  openHAB funktioniert so nicht

                  openHAB abstrahiert die Hardware, um unabhängig von der verwendeten Hardware zu werden.

                  Für unterschiedliche Hardware gibt es Bindings. Im Fall der Brennenstuhl Funksteckdosen wird das Exec Binding zum Einsatz kommen. Der erste Schritt ist also, die Steckdosen von Raspberry Pi steuerbar zu machen. Der zweite Schritt ist, openHAB beizubringen, die entsprechenden Befehle zu schicken.
                  Im Fall von Exec gibt es zwei verschiedene Bindings, exec1 und exec2, wobei letztere die aktuelle (aber leider auch etwas komplexere) Variante ist.

                  In openHAB2 installierst Du dafür zuerst das Exec Binding (openHAB bietet Dir in der Standard Konfiguration nur exec2 an).
                  Danach musst Du ein Thing erstellen. Das geht über Paper UI oder auch über eine *.things Datei:
                  Code:
                  Thing exec:command:Steckdose "Steckdose" @ "Exec" [command="/bin/bash /usr/bin/sudo /opt/raspberry-remote/send 11010 2 %2$s",autorun=true,timeout=5,transform="REGEX((.*?))"]
                  Dieses Thing hat nun automatisch mehrere Channel, von denen wir zumindest den Input Channel benötigen, also ein Item dafür:
                  Code:
                  Number FunkSteckdose2 "Funksteckdose Büro" {channel="exec:command:Steckdose:input"}
                  Dieses Item kannst Du nun steuern:
                  Code:
                  rule "Funksteckdose Büro schalten"
                  when
                      Item funkdose_2 changed
                  then
                      if (funkdose_2.state == ON)
                          FunkSteckdose2.sendCommand(1)
                      else
                          FunkSteckdose2.sendCommand(0)
                  end
                  Man kann das Ganze auch etwas umgestalten, so dass man auf die Rule verzichten kann. Dabei ist aber die einfachste Variante vermutlich, dem externen Script beizubringen, statt 1 und 0 ON und OFF als Schlüsselworte zu akzeptieren.

                  Das Ganze wird aber trotzdem (erstmal) nicht funktionieren, da sudo normalerweise die Eingabe eines Passwortes erfordert. openHAB wird normalerweise vom User openhab ausgeführt, so dass dieser User zu den sudoers gehören muss und außerdem (am besten für ausgewählte Befehle) die Passworteingabe deaktiviert bekommen muss.
                  Weiterhin wäre es schön, wenn das Script als Rückmeldung den neuen Status zurück liefert. Die Steckdosen werden vermutlich zu dumm sein, um hier eine echte Rückmeldung zu bekommen, aber zumindest bekommt man dann eine Rückmeldung, dass das Script ausgeführt wurde. Die Rückmeldung erfolgt auf einem anderen Channel, so dass man das Ergebnis in einem anderen Item erhält, wenn man das möchte.
                  Zuletzt geändert von udo1toni; 30.04.2018, 11:32.

                  Kommentar

                  Lädt...
                  X