FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Bytechanger am 03 Mai 2016, 17:39:59

Titel: Perl / FHEM asynchrone Befehlsausführung?
Beitrag von: Bytechanger am 03 Mai 2016, 17:39:59
Hallo,

gibt es in FHEM die Möglichkeit Befehle asynchron auszuführen?
Mein aktuelles Problem ist, dass mit playTone bei einem MP3 Gong die Befehlszeile lange braucht um zurückzukehren.
Da zwischen Befehl geben und Ton abspielen mehrere Sekunden vergehen. In dieser Zeit wartet FHEM ...

Das hat zur Folge, dass z.B. die Taste einer Fernbedienung ROT quittiert, weil die Antwort zu lange dauert...

Greets

Byte
Titel: Antw:Perl / FHEM asynchrone Befehlsausführung?
Beitrag von: CoolTux am 03 Mai 2016, 17:46:54
Dann scheint das entsprechende Modul für die MP3 Ausgabe blockierend zu arbeiten.

Grüße
Titel: Antw:Perl / FHEM asynchrone Befehlsausführung?
Beitrag von: Bytechanger am 03 Mai 2016, 19:32:54
Ja, meine Frage, wie kann ich das umgehen?

wie system("befehl &") ??

Als workaround geistert in meinem Kopf ein virtueller button, der auf ein Notify reagiert...

Greets

Byte
Titel: Antw:Perl / FHEM asynchrone Befehlsausführung?
Beitrag von: CoolTux am 03 Mai 2016, 19:35:46
Kannst du nicht, ausser du Schrei st einen Patch für das Modul. Welches Modul verwendest Du denn für die MP3 Ausgabe?
Titel: Antw:Perl / FHEM asynchrone Befehlsausführung?
Beitrag von: herrmannj am 03 Mai 2016, 19:40:35
fhem bearbeitet Befehle nicht nebenläufig.

Wenn Du einen Tipp möchtest um zu sehen wie und ob 'playTone' parallelisieren kann musst Du viel mehr über "playTone" verraten.

vg
joerg
Titel: Antw:Perl / FHEM asynchrone Befehlsausführung?
Beitrag von: Puschel74 am 03 Mai 2016, 19:42:32
Zitat von: herrmannj am 03 Mai 2016, 19:40:35
Wenn Du einen Tipp möchtest um zu sehen wie und ob 'playTone' parallelisieren kann musst Du viel mehr über "playTone" verraten.
Oder eine Sig zulegen damit solche Nachfragen unterbleiben können  8)

Edith: playTone kenne ich von HM
Titel: Antw:Perl / FHEM asynchrone Befehlsausführung?
Beitrag von: Bytechanger am 05 Mai 2016, 07:49:10
Was ist ein "sig" ??

Ich bin davon ausgegangen, dass es einen einfachen perl-Befehl / Syntax gibt, mit der man Befehle asynchron ausführt.
(in einem eignen threat).

Ich habe es nun über einen dummy gelöst, der den Befehl im notify ausführt. Die Befehlsparameter übergebe ich nun per trigger...
Läuft ganz gut.

Greets

Byte