Hi,
tut mir leid, aber ich muss noch mal dumm fragen. Ich hab immer noch nicht richtig kapiert was der Unterschied zwischen DOELSEIF und DOELSE ist ?
Obwohl ich mir schon mehrfach WIKI und Co angeschaut habe.
Die Grundlage ist doch: Wenn das passiert, tue das. Oder: Wen das und das passiert, tue das.
Also irgendwie bringe ich wahrscheinlich die beiden immer durcheinander. Kann mir das vielleicht jemand noch mal anhand von einem praktischen Beispiel erklären, einfach und simple ?
Grüße,
Visionsurfer
bei DOELSEIF hast du Bedingungen und Ausführungsteil.. wenn dies und/oder das... mache dies und/oder das.
Bei DOELSE hast du nur den Ausführungsteil.
Wenn keine der Bedingungen, welche du "oben" definiert hast greifen, dann schlägt DOELSE zu
Ist wie in fast jeder Programmiersprache:
IF (Bedingung) Befehl
ELSEIF oder ELSE IF (Bedingung) Befehl
ELSE Befehl
nur mit vorgesteltem DO.
Hi,
ok. Machen wir ein einfaches Beispiel:
Wenn SENSOR1 ist AN, dann schalte AKTOR1 an
Ist das nun ein DOELSE oder ein DOELSEIF ? Weil es ist doch eine Bedingung da (SENSOR 1 ist AN) und ein Ausführungsteil (AKTOR 1 soll an gehen).
Also würde ich sagen das ist ein DOELSEIF.
Aber wie sieht dann ein DOELSE aus. Also nur ein Ausführungsteil ?
jo, so ist es.
und DOELSE ist optional
commandref:
Lesbarkeit der Definitionen back
Da die Definitionen im Laufe der Zeit recht umfangreich werden können, sollten die gleichen Regeln, wie auch beim Programmieren in höheren Sprachen, beachtet werden. Dazu zählen: das Einrücken von Befehlen, Zeilenumbrüche sowie das Kommentieren seiner Definition, damit man auch später noch die Funktionalität seines Moduls nachvollziehen kann.
Das Modul unterstützt dazu Einrückungen, Zeilenumbrüche an beliebiger Stelle und Kommentierungen beginnend mit ## bis zum Ende der Zeile. Die Formatierungen lassen sich im DEF-Editor der Web-Oberfläche vornehmen.
So könnte eine Definition aussehen:
define di_Modul DOIF ([Switch1] eq "on" and [Switch2] eq "on") ## wenn Schalter 1 und Schalter 2 on ist
(set lamp on) ## wird Lampe eingeschaltet
DOELSE ## im sonst-Fall, also wenn einer der Schalter off ist
(set lamp off) ## wird die Lampe ausgeschaltet
Im Folgenden wird die Funktionalität des Moduls im Einzelnen an vielen praktischen Beispielen erklärt.
Zitat von: visionsurfer am 08 November 2016, 12:25:47
ok. Machen wir ein einfaches Beispiel:
Wenn SENSOR1 ist AN, dann schalte AKTOR1 an
Das ist streng genommen nur ein DOIF:
Das Beispiel mit DOELSEIF wäre:
Wenn SENSOR1 ist AN, dann schalte AKTOR1 rot - DOIF
OderWenn SENSOR2 ist AN, dann schalte AKTOR1 grün - DOELSEIF
Beispiel mit DOELSE
WENN SENSOR1 ist AN, dann schalte Aktor1 an - DOIF
Ansonsten schalte Aktor1 aus - DOELSE
Beispiel DOELSEIF & DOELSE
Wenn SENSOR1 ist AN, dann schalte AKTOR1 rot - DOIF
OderWenn SENSOR2 ist AN, dann schalte AKTOR1 grün - DOELSEIF
Ansonsten schalte Aktor1 aus - DOELSE
wenn du noch OderWenn durch SonstWenn ersetzt, dann passt es ;) Weil DOELSEIF nur zum Tragen kommt, wenn DOIF nicht greift