FHEM per Telephon steuern; Problem mit Hintergrundprozess

Begonnen von Guest, 20 März 2011, 13:46:49

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo zusammen,

ich teste mit untenstehendem bash/ksh-Script, FEHM per Telephon über
meine Fritzbox zu steuern. Per netcat wird der zuvor aktivierte
Fritzbox-Anrufmonitor abgefragt, in einer while-Schleife wird die
aufgerufene Telephonnummer ausgewertet und somit z. B. Lampen
geschaltet. Solange das Script im Vordergrund läuft, arbeitet es
einwandfrei. Sobald es mit "&" in den Hintergrund geschickt wird, hält
der Prozess an (Status "T") (bei Nutzung der ksh, bei bash wird
komplett beendet).
Ich vermute, daß netcat Probleme hat, in den Hintergrund geschickt zu
werden und die Ausgabe in eine Pipe zu senden.
Weiß jemand Rat?

Gruß
TD

#!/bin/ksh
# IP of Fritzbox
FRITZBOXIP=192.168.1.1
# Port number of FHEM
FHEMPORT=7073
# example of log line of Fritzbox call monitor
#logline="17.03.11 18:35:17;CALL;0;0;123456;1#;SIP0; "
# Fritzbox call monitor has to be switched on previously by dialing
"#96*5*"
# ("#96*4*" to disable it)

netcat $FRITZBOXIP 1012 | while read logline;
do
    DATE=$( echo $logline | cut -f1 --delimiter=";")
    NUMBER=$( echo $logline | cut -f6 --delimiter=";")
    COMMAND=$( echo $logline | cut -f2 --delimiter=";")
    DATETIME=`date "+%a %H:%M"`
    echo $logline
#    echo $DATETIME: $logline
#    echo $COMMAND
#    echo $NUMBER
    if [ $COMMAND = "CALL" ];
    then
      case $NUMBER in
        1#) fhem.pl $FHEMPORT "set tc6.1 toggle";;
        2#) fhem.pl $FHEMPORT "set tc6.2 toggle";;
        3#) fhem.pl $FHEMPORT "set tc6.3 toggle";;
        4#) fhem.pl $FHEMPORT "set NAS toggle";;
      esac
    fi
done

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

Hallo,

Das script läuft bei mir ohne Probleme im Hintergrund.

Mit " nohup script & " geht das unter unbuntu ohne Probleme.

Frage:

Wie stellst Du auf der FritzBox ein, dass Du die Nebenstelle anrufen
kannst? ( 1#;SIP0;)





On 20 Mrz., 13:46, TD wrote:
> Hallo zusammen,
>
> ich teste mit untenstehendem bash/ksh-Script, FEHM per Telephon über
> meine Fritzbox zu steuern. Per netcat wird der zuvor aktivierte
> Fritzbox-Anrufmonitor abgefragt, in einer while-Schleife wird die
> aufgerufene Telephonnummer ausgewertet und somit z. B. Lampen
> geschaltet. Solange das Script im Vordergrund läuft, arbeitet es
> einwandfrei. Sobald es mit "&" in den Hintergrund geschickt wird, hält
> der Prozess an (Status "T") (bei Nutzung der ksh, bei bash wird
> komplett beendet).
> Ich vermute, daß netcat Probleme hat, in den Hintergrund geschickt zu
> werden und die Ausgabe in eine Pipe zu senden.
> Weiß jemand Rat?
>
> Gruß
> TD
>
> #!/bin/ksh
> # IP of Fritzbox
> FRITZBOXIP=192.168.1.1
> # Port number of FHEM
> FHEMPORT=7073
> # example of log line of Fritzbox call monitor
> #logline="17.03.11 18:35:17;CALL;0;0;123456;1#;SIP0; "
> # Fritzbox call monitor has to be switched on previously by dialing
> "#96*5*"
> # ("#96*4*" to disable it)
>
> netcat $FRITZBOXIP 1012 | while read logline;
> do
>     DATE=$( echo $logline | cut -f1 --delimiter=";")
>     NUMBER=$( echo $logline | cut -f6 --delimiter=";")
>     COMMAND=$( echo $logline | cut -f2 --delimiter=";")
>     DATETIME=`date "+%a %H:%M"`
>     echo $logline
> #    echo $DATETIME: $logline
> #    echo $COMMAND
> #    echo $NUMBER
>     if [ $COMMAND = "CALL" ];
>     then
>       case $NUMBER in
>         1#) fhem.pl $FHEMPORT "set tc6.1 toggle";;
>         2#) fhem.pl $FHEMPORT "set tc6.2 toggle";;
>         3#) fhem.pl $FHEMPORT "set tc6.3 toggle";;
>         4#) fhem.pl $FHEMPORT "set NAS toggle";;
>       esac
>     fi
> done

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

Bei mir nun auch, nachdem ich nach vielen Versuchen (ich nutze
Opensuse) openbsd-netcat installiert habe und nutze.
Das per se installierte netcat hat offensichtlich Problem, in den
Hintergrund geschickt zu werden, da es Eingaben vom Terminal erwartet.

Auf der Fritzbox habe ich explizit nichts eingestellt. Mir war bis
dato auch nicht bekannt, daß #1 die Nebenstelle anspricht.

TD

On 23 Mrz., 09:45, Peter wrote:
> Hallo,
>
> Das script läuft bei mir ohne Probleme im Hintergrund.
>
> Mit " nohup script & " geht das unter unbuntu ohne Probleme.
>
> Frage:
>
> Wie stellst Du auf der FritzBox ein, dass Du die Nebenstelle anrufen
> kannst? ( 1#;SIP0;)
>
> On 20 Mrz., 13:46, TD wrote:
>
> > Hallo zusammen,
>
> > ich teste mit untenstehendem bash/ksh-Script, FEHM per Telephon über
> > meine Fritzbox zu steuern. Per netcat wird der zuvor aktivierte
> > Fritzbox-Anrufmonitor abgefragt, in einer while-Schleife wird die
> > aufgerufene Telephonnummer ausgewertet und somit z. B. Lampen
> > geschaltet. Solange das Script im Vordergrund läuft, arbeitet es
> > einwandfrei. Sobald es mit "&" in den Hintergrund geschickt wird, hält
> > der Prozess an (Status "T") (bei Nutzung der ksh, bei bash wird
> > komplett beendet).
> > Ich vermute, daß netcat Probleme hat, in den Hintergrund geschickt zu
> > werden und die Ausgabe in eine Pipe zu senden.
> > Weiß jemand Rat?
>
> > Gruß
> > TD
>
> > #!/bin/ksh
> > # IP of Fritzbox
> > FRITZBOXIP=192.168.1.1
> > # Port number of FHEM
> > FHEMPORT=7073
> > # example of log line of Fritzbox call monitor
> > #logline="17.03.11 18:35:17;CALL;0;0;123456;1#;SIP0; "
> > # Fritzbox call monitor has to be switched on previously by dialing
> > "#96*5*"
> > # ("#96*4*" to disable it)
>
> > netcat $FRITZBOXIP 1012 | while read logline;
> > do
> >     DATE=$( echo $logline | cut -f1 --delimiter=";")
> >     NUMBER=$( echo $logline | cut -f6 --delimiter=";")
> >     COMMAND=$( echo $logline | cut -f2 --delimiter=";")
> >     DATETIME=`date "+%a %H:%M"`
> >     echo $logline
> > #    echo $DATETIME: $logline
> > #    echo $COMMAND
> > #    echo $NUMBER
> >     if [ $COMMAND = "CALL" ];
> >     then
> >       case $NUMBER in
> >         1#) fhem.pl $FHEMPORT "set tc6.1 toggle";;
> >         2#) fhem.pl $FHEMPORT "set tc6.2 toggle";;
> >         3#) fhem.pl $FHEMPORT "set tc6.3 toggle";;
> >         4#) fhem.pl $FHEMPORT "set NAS toggle";;
> >       esac
> >     fi
> > done

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.