Ankündigung

Einklappen
Keine Ankündigung bisher.

If-then-else tut nicht was es soll..

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    If-then-else tut nicht was es soll..

    Hallo!
    Folgende Aufgabenstellung: Es soll ein 1-Tasten Dimmer realisiert werden, bei dem immer durch drei definierte Dimmwerte gegangen werden soll, 1-2-3-1-2-3 und so weiter, jeweils per Tastendruck.
    Ich habe das wie unten realisiert, trotzdem werden bei jedem Tastenevent - und es ist wirklich immer nur einer pro Druck, alle drei Telegramme gesendet, interessanterweise in umgekehrter Reihenfolge, also 100, 25, 15.
    Ich komme nicht drauf warum .... Es sieht für mich aus als wird das "else" einfach ignoriert. Passend dazu ist EsstischDimmstatus immer 3 sobald der Event einmal ausgelöst wurde.
    Ja, switch-case wäre mir auch lieber ...

    Code:
    if (event("EG_Wohnzimmer_Esstisch_DimmTrigger-2/1/112") and ("EG_Wohnzimmer_Esstisch_DimmTrigger-2/1/112" == EIN) ) then {
            if (EsstischDimmstatus == 0 or EsstischDimmstatus == 3 ) then {
            EsstischDimmstatus = 1;
            write ("EG_Wohnzimmer_Esstisch_d-2/1/86",15)
            } else {
                if ( EsstischDimmstatus == 1) then {
                EsstischDimmstatus = 2;
                write ("EG_Wohnzimmer_Esstisch_d-2/1/86",25)
                } else {
                    if ( EsstischDimmstatus == 2) then {
                    EsstischDimmstatus = 3;
                    write ("EG_Wohnzimmer_Esstisch_d-2/1/86",100)
                    } endif
                } endif
            } endif
    } endif​
    Zuletzt geändert von cds; 19.01.2025, 19:58.

    #2
    Habe den Grund gefunden: Es gibt beim EIBPC kein "else" in dem Sinn. Aus dem else-Pfad wird beim Kompilieren eine neue If-clause mit negierter Bedingung erzeugt. Bei Verschachtelungen geht das natürlich mit Vollgas in die Hose .....

    Kommentar

    Lädt...
    X