FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: andi11 am 04 November 2017, 07:37:47

Titel: abarbeitung einer Befehlssequenz zum einschalten eines TV
Beitrag von: andi11 am 04 November 2017, 07:37:47
Guten Morgen,
gibt es eine Möglichkeit folgenden Code so zu schreiben dass er besser lesbar bleibt? Ein Zeilenumbruch innerhalb von Perl würde schon etwas bringen.
if ($EVENT eq "on") {
  fhem ("set irempfaenger_Wohnzimmer commandSend samsungtv_poweron; sleep .1; set avreceiver_Wohnzimmer on; set irempfaenger_Wohnzimmer commandSend  satreciever_poweron; sleep 10; set tv_Wohnzimmer HDMI1; sleep .1; set avreceiver_Wohnzimmer input hdmi1");
}elsif ($EVENT eq"off") {
  fhem("set tv_Wohnzimmer POWEROFF; set avreceiver_Wohnzimmer off; set irempfaenger_Wohnzimmer commandSend  satreciever_poweron;");
}
}


Die ganzen set Kommandos hintereinander brauche ich, da ich z.b. erst TV einschalten will, und dann nach einer Pause eben dort den Eingang wechsel.
Allerdings verliere ich so sehr schnell den Überblick. Mit folgendem wäre die Abarbeitung aber ja komplett anders oder?

set irempfaenger_Wohnzimmer commandSend samsungtv_poweron; sleep .1;
set avreceiver_Wohnzimmer on;
set irempfaenger_Wohnzimmer commandSend  satreciever_poweron;sleep 10;

Titel: Antw:abarbeitung einer Befehlssequenz zum einschalten eines TV
Beitrag von: CoolTux am 04 November 2017, 08:12:55
Schreib doch mit Zeilenumbruch


    if ($EVENT eq "on") {
           fhem ("set irempfaenger_Wohnzimmer commandSend samsungtv_poweron;
                       sleep .1; set avreceiver_Wohnzimmer on; set irempfaenger_Wohnzimmer commandSend  satreciever_poweron;
                       sleep 10; set tv_Wohnzimmer HDMI1;
                       sleep .1; set avreceiver_Wohnzimmer input hdmi1");

    }elsif ($EVENT eq"off") {
                     fhem("set tv_Wohnzimmer POWEROFF; set avreceiver_Wohnzimmer off; set irempfaenger_Wohnzimmer commandSend  satreciever_poweron;");
    }


Wieso steht eigentlich ein Punkt vor der 1 gleich nach dem sleep?
Titel: Antw:abarbeitung einer Befehlssequenz zum einschalten eines TV
Beitrag von: andi11 am 04 November 2017, 08:14:49
Vielen Dank.
Zitat von: CoolTux am 04 November 2017, 08:12:55
Wieso steht eigentlich ein Punkt vor der 1 gleich nach dem sleep?
Um 0.1s Pause zu machen.