Ankündigung

Einklappen
Keine Ankündigung bisher.

if und f16...

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

    if und f16...

    V3 Update - vorher klappte folgendes ohne Probleme:
    Code:
    if  "Dämmerung-0/0/6"f16 < 900f16 and (Nachmittag) then {
                write("LedTreppenstufen-2/1/11",EIN);\\
        } endif
    Nach dem Update klappt das nun nicht mehr.
    Nachmittag ist auf "Ein" und der Wert ist derzeit 26.0.
    Warum?

    Vielen Dank!

    #2
    Was soll denn die Kombination aus geschweiften Klammern, Semikolon und Doppelschrägstrich im then Teil?

    Die runden Klammern um Nachmittag machen auch keinen Sinn.

    So könnte man es u.A. richtig machen:

    if "Dämmerung-0/0/6"f16 < 900f16 and Nachmittag then \\
    write("LedTreppenstufen-2/1/11",EIN) \\
    endif

    Kommentar


      #3
      aber so richtig "Falsch" ist
      Kombination aus geschweiften Klammern, Semikolon und Doppelschrägstrich im then Teil?
      Die runden Klammern um Nachmittag machen auch keinen Sinn.
      es nicht....

      Klammern dürfen sein, Semilokon ist auch OK und die {} sind auch kein Tabu - der Compiler hat ja auch nix angemeckert, oder?!
      EPIX
      ...und möge der Saft mit euch sein...
      Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

      Kommentar


        #4
        Hallo Karlson,

        probier mal das hier und sende dann Dein Telegramm "Dämmerung-0/0/6" mit dem Wert 26.0

        [highlight=epc]
        if event("Dämmerung-0/0/6"f16) and ("Dämmerung-0/0/6"f16 < 900f16) and (Nachmittag) then {
        write("LedTreppenstufen-2/1/11",EIN);
        } endif

        [/highlight]

        Dein Code funktioniert nur, wenn inzwischen der Wert größer oder gleich 900 war und somit bei einer Wertänderung durch ein Telegramm < 900 der Zweig wieder invalidiert wurde.

        Gruß,
        Bernd

        Kommentar


          #5
          Zitat von EPIX Beitrag anzeigen
          aber so richtig "Falsch" ist es nicht....

          Klammern dürfen sein, Semilokon ist auch OK und die {} sind auch kein Tabu - der Compiler hat ja auch nix angemeckert, oder?!
          Aber es bringt auch nichts, ausser die Lesbarkeit zu verschlechtern...

          Kommentar


            #6
            Zitat von DerMitdemBusSpricht Beitrag anzeigen
            V3 Update - vorher klappte folgendes ohne Probleme:
            Code:
            if  "Dämmerung-0/0/6"f16 < 900f16 and (Nachmittag) then {
                        write("LedTreppenstufen-2/1/11",EIN);\\
                } endif
            An dieser Stelle hat sich sicher nichts geändert. Ich vermute eher ein Initialisierungsproblem. Dazu muss man also wissen, was da beim Einspielen genau gesetzt ist.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Scchon mal danke für die Hinweise.
              Die Sache mit den Klammern ist ehr aus der historie denn ich hatte ursprünglich mehrere Dinge die ich bei diesem Wert eingeschaltet habe.

              Zu der Event Sache:
              Ich denke das kann ich hier nicht nutzen. Der Dämmerungswert wird zyklisch geschickt. Wenn ich aber nun das Licht händisch ausmache, so wird es direkt mit dem nächsten Wert wieder eingeschaltet. Deswegen wollte ich bewusst nur eine if anweisung machen die einmal ausgeführt wird und dann nicht mehr.

              Ich teste es aber noch mal.

              Vielen Dank!

              Kommentar


                #8
                kannst ja noch was einbauen, das dir das ganze sperrt, wenn du händisch
                ausschaltest..

                [highlight=epc]
                Sperre = AUS
                if event("Dämmerung-0/0/6"f16) and ("Dämmerung-0/0/6"f16 < 900f16) and Nachmittag and !Sperre then {
                write("LedTreppenstufen-2/1/11",EIN);
                } endif
                [/highlight]

                dann machst du bei deinem Taster fürs Licht:

                [highlight=epc]
                if event("TasterLED-0/1/6") and ("TasterLED-0/1/6"== AUS) then Sperre = EIN endif
                if htime(00,00,00) then Sperre = AUS endif
                [/highlight]

                nur als Beispiel...

                Gruß Martin
                Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                Kommentar


                  #9
                  Sicher kann man eine weitere Variable dazu nehmen aber das wollte ich eigentlich vermeiden. Die Geschweiften Klammern habe ich dann mal entfernt und das ganz nun noch mal getestet. Es geht wieder.
                  Gut an den Klammern wird es nicht gelegen haben, aber trotzdem alles etwas merkwürdig. Ich behalte es mal im Auge.

                  Vielen Dank!

                  Kommentar

                  Lädt...
                  X