Kommentare in mehrzeiligen Kommandos

331 views
Skip to first unread message

Lipo

unread,
Jan 21, 2012, 9:36:43 AM1/21/12
to fhem-...@googlegroups.com
Hallo liebe FHEM Nutzer,
bin seit einiger Zeit dabei, mir mit Homematic Komponenten eine Haussteuerung aufzubauen.

Zur besseren Dokumentation möchte ich gern Kommentare einbauen. Bei einzeiligen Kommandos ist das ja kein Problem:
set DEVICE_1 on    # Gerät einschalten

Wie löst man das aber für mehrzeilige Befehle, welche man zur besseren Übersicht auch noch mit TABs versehen hat?
Wenn ich da # verwende werden die Befehle nicht mehr ausgeführt.

Bisher hat ich diese Lösung gefunden, aber vielleicht geht es noch einfacher:
define    NAME notify    NAME { {'comment'}\
    if (Value("HZ_Fens_S") eq "geschlossen") {    {'nur wenn Fenster geschlossen ist'}\
        {fhem "set xx_SdSa_1 on-for-timer 1"}    {'Steckdose 1 fuer 1 sec einschalten'}\
        {fhem "set xx_SdSa_4 on-for-timer 1"}    {'Steckdose 4 fuer 1 sec einschalten'}\
    } \
}

Rudolf Koenig

unread,
Jan 21, 2012, 5:30:35 PM1/21/12
to fhem-...@googlegroups.com
> Wie l�st man das aber f�r mehrzeilige Befehle, welche man zur besseren
> �bersicht auch noch mit TABs versehen hat?

Ich wuerde das command Attribut vorschlagen. Oder beim laengeren Code
ueberlegen, jeweils eine Funktion in 99_MyUtils.pm zu hinterlegen, und diese
Funktion aus der notify aufrufen. Man kann aber natuerlich einfach einen String
als Kommando hinterlegen, auch wenn das jedem Programmierer etwas komisch
vorkommt. Apropos komisch: Koennt ihr bitte statt { cmd1 }{ cmd2 } wie in jede
Programmiersprache cmd1;cmd2; schreiben? Bzw. wg. fhem dann cmd1;;cmd2;; ?
Bitte.

Lipo

unread,
Jan 22, 2012, 3:35:45 AM1/22/12
to fhem-...@googlegroups.com
Danke fuer die schnelle Antwort.
Das command Attribut verwende ich auch, zur generellenBeschreibung von Komponenten.
Ich moechte aber direkt in FHEM Befehlscode Kommentare schreiben. Deshalb habe ich den Konstrukt mit {cmd1} {cmd2} verwendet.

Also konkret: Wie fuege ich zum Beispiel hier in die Zeilen 2-5 einen Kommentar ein?

delete    test_noti # loeschen wegen Neudefinition
define    test_noti notify    test_noti {\
    if (Value("HZ_Fens_S") eq "geschlossen") { \
        fhem "set xx_SdSa_1 on-for-timer 1";;\
        fhem "set xx_SdSa_4 on-for-timer 1"\
    } \
}
trigger test_noti # Aufruf zum Testen

Das hier funktioniert nicht:
define    test_noti notify    test_noti {               # nur zum Testen \
    if (Value("HZ_Fens_S") eq "geschlossen") { # nur wenn Fenster xx geschlossen ist \
        fhem "set xx_SdSa_1 on-for-timer 1"       # Steckdose 1 fuer 1sec ein ;;\
        fhem "set xx_SdSa_4 on-for-timer 1"       # Steckdose 4 fuer 1sec ein   \
    } \
}


Reply all
Reply to author
Forward
0 new messages