FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 17 Juni 2012, 21:23:44

Titel: wie trigger ich ein bash-script nach z.B. 10 Sekunden unter fhem richtig?
Beitrag von: Guest am 17 Juni 2012, 21:23:44
Originally posted by: <email address deleted>

Hallo Leute,

im Moment fehlt mir eine Idee.
Da das 10_EIB.pm einen kleinen Fehler hat (vielleicht liegt es nicht am
10_EIB.pm)
Es vergisst alle Rollopossitionen und setzt die Werte auf 0%

Nun kann ich manuell auf der bash mit dem Befehl "groupread ip:localhost
0/0/35" die Werte gezielh abfragen.
Und im fhem stehen die Werte wider korrekt.
Daher habe ich mir ein Script geschrieben das genau diese für alle 6 Rollos
macht.

Nun möchte ich dieses Befehl ca. 10 Sekunden nach einem notify auslösen.
Nur wie mach ich das richtig,.
In Perl kann ich mit system (......) ein Script starten.
Ich könnte zwar diese 10 Sekunden ins Script schreiben, nur weis ich nicht
ob der Ansatz überhaupt so richtig ist.

meine DEF sieht so aus:

(sv:currentPower.*) {
my $hm = sprintf("%%02d:%%02d", $hour, $min);
if( $month ge "6" && $month le "9") {
 if ( $hm gt "09:00" && $hm  lt "19:00") {
  if (%EVTPART1  < 4000 ) {
   if (ReadingsVal('du.sonnenlichtpersolarlow','state',0) == 0) {
    fhem('set Flur1 Auf');
    fhem('set RBUERO1 Auf');
    fhem('set RBUERO2 Auf');
    fhem('set KuecheOG Auf');
    fhem('set BadOG Auf');
    fhem('set du.sonnenlichtpersolarlow 1');
    fhem('set du.sonnenlichtpersolarhigh 0');
    system('/usr/share/fhem/FHEM/rollo_statuslesenknx.sh');
    }
   }else {
   if (%EVTPART1 > 8000 ) {
    if (ReadingsVal('du.sonnenlichtpersolarhigh','state',0) == 0) {
     fhem('set Flur1,Flur2,RBUERO1,RBUERO2 Ab');
     fhem('set KuecheOG,BadOG Pos3');
     fhem('set du.sonnenlichtpersolarlow 0');
     fhem('set du.sonnenlichtpersolarhigh 1');
     system('/usr/share/fhem/FHEM/rollo_statuslesenknx.sh');
     }
    }
   }
  }
 }
}



--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: wie trigger ich ein bash-script nach z.B. 10 Sekunden unter fhem richtig?
Beitrag von: rudolfkoenig am 17 Juni 2012, 23:52:57
                                                   

> In Perl kann ich mit system (......) ein Script starten.

oder mit `...`

> Ich könnte zwar diese 10 Sekunden ins Script schreiben, nur weis ich nicht
> ob der Ansatz überhaupt so richtig ist.

Damit das gestartete Shellskript mit fhem interagieren kann, muss man es im
Hintergrund starten (sonst wartet fhem blockierend, bis es fertig ist):

  system('/usr/share/fhem/FHEM/rollo_statuslesenknx.sh&');

Am besten leitet man auch die Ausgabe ins fhem-log um (Achtung, " statt '):

  system("/usr/share/fhem/FHEM/rollo_statuslesenknx.sh >> $currlogfile 2>&1 &");

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: wie trigger ich ein bash-script nach z.B. 10 Sekunden unter fhem richtig?
Beitrag von: Guest am 18 Juni 2012, 07:37:38
Originally posted by: <email address deleted>

Danke für den Tipp.

Am Sonntag, 17. Juni 2012 23:52:57 UTC+2 schrieb Rudolf Koenig:
>
> > In Perl kann ich mit system (......) ein Script starten.
>
> oder mit `...`
>
> > Ich k�nnte zwar diese 10 Sekunden ins Script schreiben, nur weis ich
> nicht
> > ob der Ansatz �berhaupt so richtig ist.
>
> Damit das gestartete Shellskript mit fhem interagieren kann, muss man es
> im
> Hintergrund starten (sonst wartet fhem blockierend, bis es fertig ist):
>
>   system('/usr/share/fhem/FHEM/rollo_statuslesenknx.sh&');
>
> Am besten leitet man auch die Ausgabe ins fhem-log um (Achtung, " statt
> '):
>
>   system("/usr/share/fhem/FHEM/rollo_statuslesenknx.sh >> $currlogfile
> 2>&1 &");
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com