FHEM Forum

FHEM => fhem-users => Thema gestartet von: Guest am 21 Januar 2012, 15:36:43

Titel: Kommentare in mehrzeiligen Kommandos
Beitrag von: Guest am 21 Januar 2012, 15:36:43
Originally posted by: <email address deleted>

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'}\
    } \
}

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Kommentare in mehrzeiligen Kommandos
Beitrag von: rudolfkoenig am 21 Januar 2012, 23:30:35
                                                   

> 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.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Titel: Re: Kommentare in mehrzeiligen Kommandos
Beitrag von: Guest am 22 Januar 2012, 09:35:45
Originally posted by: <email address deleted>

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   \
    } \
}


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