Ankündigung

Einklappen
Keine Ankündigung bisher.

exec

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

    exec

    Hallo,

    ich versuche mich zur Zeit an openhab und habe ein Problem bei dem ich nicht weiterkomme.

    Ich kann das Licht über die Weboberfläche einschalten, aber nicht über eine Regel. Über die Regel ändert sich nur der Status in der Weboberfläche, aber das Licht selbst wird nicht eingeschaltet.

    Hier die Einträge aus der items-Datei:
    Code:
    Switch Lampe_Ralf1      "Deckenlampe 1"      (gRalf, gLampen)  {  exec="OFF:/bin/ecmd.sh 192.168.178.240 io set port 04 00  10,ON:/bin/ecmd.sh 192.168.178.240 io set port 04 10 10" } 
    Number IRQ       "IRQ"
    Aus der rules-Datei:
    Code:
    var Number irq = 0 
    rule "IRQ Lampe_Ralf1" 
       when 
          Item IRQ received command 
       then 
          say(irq) 
          if(receivedCommand>irq) { 
             postUpdate(Lampe_Ralf1, ON); 
             irq = receivedCommand 
          } 
          else { 
             postUpdate(Lampe_Ralf1, OFF); 
          } 
    end
    So sieht es aus, wenn ich die Variable irq von aussen per http ändere:
    Code:
    13:14:24.177 INFO  runtime.busevents[:42] - IRQ received command 1 
    13:14:25.096 INFO  runtime.busevents[:46] - Lampe_Ralf1 state updated to ON 
    13:14:26.578 INFO  runtime.busevents[:42] - IRQ received command 1 
    13:14:27.346 INFO  runtime.busevents[:46] - Lampe_Ralf1 state updated to OFF 
    13:14:45.789 INFO  runtime.busevents[:42] - IRQ received command 10 
    13:14:46.538 INFO  runtime.busevents[:46] - Lampe_Ralf1 state updated to ON 
    13:14:55.220 INFO  runtime.busevents[:42] - IRQ received command 10 
    13:14:56.106 INFO  runtime.busevents[:46] - Lampe_Ralf1 state updated to OFF
    Wie gesagt, in der Zeit ändert sich der Status in der Weboberfläche, das Licht bleibt aber aus.

    Und so sieht es aus, wenn ich über die Weboberfläche das Licht schalte:
    Code:
    13:16:05.549 INFO  o.o.b.e.internal.ExecBinding[:131] - executed  commandLine '/bin/ecmd.sh 192.168.178.240 io set port 04 10 10' 
    13:16:05.551 INFO  runtime.busevents[:42] - Lampe_Ralf1 received command ON 
    13:16:06.355 INFO  o.o.b.e.internal.ExecBinding[:131] - executed  commandLine '/bin/ecmd.sh 192.168.178.240 io set port 04 00 10' 
    13:16:06.357 INFO  runtime.busevents[:42] - Lampe_Ralf1 received command OFF
    Wo liegt der Fehler? Hab ich irgendetwas übersehen oder geht das so gar nicht?

    Viele Grüße
    Ralf

    #2
    Hi Ralf,

    versuche es mal mit:

    Code:
    rule "IRQ Lampe_Ralf1" 
       when 
          Item IRQ received command 
       then 
          say(irq) 
          if(receivedCommand>irq) { 
             Lampe_Ralf1.sendCommand(ON); 
             irq = receivedCommand 
          } 
          else { 
             Lampe_Ralf1.sendCommand(OFF); 
          } 
    end
    Du möchtest ja gerade ein Kommando an den Aktor schicken und nicht nur den Status des Items aktualisieren (was man vielleicht mit der Rückmeldung des Aktors machen würde).

    Aus Interesse: was wird denn da über "exec" für ein Programm aufgerufen?

    Gruß,

    Thomas E.-E.
    Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

    Kommentar


      #3
      Danke, funktioniert!

      Jetzt wo ich den Befehl kenne, habe ich auch die Seite gefunden:
      http://wiki.openhab.googlecode.com/hg/Actions.wiki

      Kommentar


        #4
        Zitat von teichsta Beitrag anzeigen
        Aus Interesse: was wird denn da über "exec" für ein Programm aufgerufen?
        Im Moment nur ein kleines Shellscript, das per nc Kommandos verschickt. Dahinter hängt ein AVR Net IO-Board und dahinter verschiedene Geräte. Aktuell z.B. ein Relais, das sich einschaltet, wenn meine Soundkarte etwas ausgibt. Ich hatte das vorher mit Python schon eine Weile laufen, will das ganze aber nun stark erweitern. Deswegen versuche ich mich zur Zeit an openhab.

        http://www.ethersex.de

        Kommentar

        Lädt...
        X