Ankündigung

Einklappen
Keine Ankündigung bisher.

die Validierung mal wieder

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

    die Validierung mal wieder

    Hallo beinander,

    ich habe auf meinem WebServer einen Button a'la
    pbutton(ButtonFBHBlocked)[TEMPERATURE]$FBH status$

    und code
    FBHBlocked=ON

    if pbutton(ButtonFBHBlocked, PageIDTechnik)==1 then {
    if (FBHBlocked==ON) then {
    FBHBlocked=OFF
    } else {
    FBHBlocked=ON } endif
    } endif

    .........
    if (FBHBlocked == OFF) then {
    if wtime(18,00,00, WEEKDAY) then write("Bad Fussboden-3/3/4",ON)

    } endif


    FBHBlocked agiert also als "globales" Flag mit welchem ich, wann immer ich will, die elektr. Fußbodenheizung quasi blockieren möchte. Geht über den Webserver.

    Und hier mein Problem. Die GA wird einfach nicht geschrieben. Ich denke, das liegt daran daß erst eine Änderung in meinem FBHBlocked stattfinden müßte. Will ich aber nicht. Irgendwann, wenn's warm genug wird, möchte ich einfach die FBH blockieren.

    Wie funzt das mit diesen "globalen" Flags? Wo ist mein Denkfehler?

    Grüßle,

    Harry

    #2
    Moin Harry,

    schreib mal die innere if .. then Abfrage ein wenig anders (siehe dazu Handbuch V19 auf Seite 39 + Seite 121) sonst wird die Variable gleich wieder geändert.

    Code:
    FBHBlocked=ON
     
    if pbutton(ButtonFBHBlocked, PageIDTechnik)==1 then {
         FBHBlocked = !FBHBlocked
    } endif
    .........
    
    if (FBHBlocked == OFF) and cwtime(18,00,00, WEEKDAY) then {
        write("Bad Fussboden-3/3/4",ON) 
    } endif
    Gruß,
    Bernd

    Kommentar


      #3
      Servus Bernd,

      ne, das war's nicht. Keine Frage, dein Stück Code ist um einiges eleganter um die Variable FBHBlocked zu negieren. Ändert aber leider nix an der Tatsache daß der write() nicht zündet. Daß die Variable FBHBlocked in meinem Falle definitiv den richtigen Wert hat, habe ich mit "Variablen vorgeben und abfragen" verifiziert.

      Gut Nacht,

      Harry

      Kommentar


        #4
        Hi Harry,

        ich hatte noch kurz verbessert von wtime in cwtime. Bei wtime mußt Du exakt den Zeitpunkt treffen, das ist natürlich Murks.
        cwtime hat aber auch so seine Tücken, denn CWTIME( x,y,z, WEEKDAY) ist das gleiche wie cwtime(x,y,z, MONDAY).
        Ich vermute aber, Du möchtest jeden Werktag abends um 18.00 Uhr die Fußbodenheizung einschalten, oder?

        Dann sollte
        Code:
        if (FBHBlocked == OFF) and chtime(18,00,00) and dayofweek() > 0u08 and dayofweek() < 6u08 then {     write("Bad Fussboden-3/3/4",ON)  } endif
        den gewünschten Effekt haben. Allerdings auch nur genau einmal jeden Tag solange Du FBHBlocked nicht änderst.

        Gruß,
        Bernd

        Kommentar


          #5
          Servus Bernd,

          da ich wtime() auch an anderen Stellen benutze, dachte ich, daß der Zeitpunkt auf jeden Fall getroffen wird. Oder anders gesagt, hatte ich von irgendwoher im Hinterkopf, daß der EibPC für solcherlei Geschichten schnell genug ist.

          Bin mir eigentlich ziemlich sicher, daß meine anderen wtimes() funktionieren. Aber ich werde das heute Abend natürlich ausprobieren.

          Danke schon mal,

          Harry

          Kommentar


            #6
            Zitat von FHarry Beitrag anzeigen
            if (FBHBlocked == OFF) then {
            if wtime(18,00,00, WEEKDAY) then write("Bad Fussboden-3/3/4",ON)

            } endif
            Der Code kann nur per extremen Zufall so funktionieren: Du müsstest auf die Millisekunde genau um 18:00 die Variable umstellen (ich glaube bmx hat Dir schon die Erklärung im Handbuch gegeben).
            [highlight=epc]
            if (FBHBlocked == OFF) and chtime(18,00,00) then {
            then write("Bad Fussboden-3/3/4",ON)
            } endif
            [/highlight]
            Eine reine Und-Verknüpfung mit htime oder wtime würde auch nur dann auslösen, wenn Locked bereits vor dem Schaltpunkt ausgelöst hat.
            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
            Enertex Produkte kaufen

            Kommentar


              #7
              Hi,

              es will immer noch nicht. Mittlerweilen sieht der code folgendermaßen aus:
              Weekend = (dayofweek()==SAMSTAG) or (dayofweek()==SONNTAG)
              // Fussbodenheizung Bad OG morgens + abends
              if FBHBlocked == OFF then {
              if chtime(FBHOGMoFr_Morning_Hour,FBHOGMoFr_Morning_Mi n,00) AND !Weekend then write("Bad Fussboden-3/3/4",ON) endif;
              if chtime(FBHOGSaSo_Morning_Hour,FBHOGSaSo_Morning_Mi n,00) AND Weekend then write("Bad Fussboden-3/3/4",ON) endif;
              if chtime(FBHOGMoFr_Evening_Hour,FBHOGMoFr_Evening_Mi n,00) AND !Weekend then write("Bad Fussboden-3/3/4",ON) endif;
              if chtime(FBHOGSaSo_Evening_Hour,FBHOGSaSo_Evening_Mi n,00) AND Weekend then write("Bad Fussboden-3/3/4",ON) endif;
              } endif

              Alle Variablen habe ich eben überprüft. Stimmen genau:
              Weekend steht auf EIN
              die zeiten (werden über die Visu vorgegeben) passen auch (6:30)
              Aber das Telegramm ist nirgends zu finden:
              2011-10-22 06:30:00, 1/1/22, "Temperatur Essen-8/2/2", 16-Bit-Fliesskommazahl, 22.0, Schreiben, bc 11 16 42 02 83 00 80 0c 4c 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:04, 1/1/27, "Temperatur Kind Ost-8/3/0", 16-Bit-Fliesskommazahl, 20.7, Schreiben, bc 11 1b 43 00 83 00 80 0c 0b 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:09, 1/1/28, "Temperatur Kind Süd-8/3/1", 16-Bit-Fliesskommazahl, 21.400000000000002, Schreiben, bc 11 1c 43 01 83 00 80 0c 2e 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:17, 1/1/25, "Temperatur Bad-8/2/4", 16-Bit-Fliesskommazahl, 19.900000000000002, Schreiben, bc 11 19 42 04 83 00 80 07 c6 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:31, 1/1/14, "Verbrauch Wärmepumpe-0/3/0", 16-Bit-Fliesskommazahl, 30208.0, Schreiben, bc 11 0e 03 00 83 00 80 5d c3 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:31, 1/1/14, "Verbrauch Wärmepumpe-0/3/0", 16-Bit-Fliesskommazahl, 30228.48, Schreiben, bc 11 0e 03 00 83 00 80 5d c4 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:42, 1/1/3, '5/2/0'u16, positive Ganzzahl, 0, Schreiben, bc 11 03 2a 00 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:42, 1/1/3, "Plugmar Verbrauch Küche-5/2/3", 16-Bit-Fliesskommazahl, 0.0, Schreiben, bc 11 03 2a 03 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:42, 1/1/3, "Plugmar Verbrauch Essen-5/2/2", 16-Bit-Fliesskommazahl, 0.0, Schreiben, bc 11 03 2a 02 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:42, 1/1/3, "Plugmar Verbrauch TV-5/2/1", 16-Bit-Fliesskommazahl, 0.0, Schreiben, bc 11 03 2a 01 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:42, 1/1/3, "Plugmar Verbrauch Schlafen-5/3/3", 16-Bit-Fliesskommazahl, 0.0, Schreiben, bc 11 03 2b 03 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:42, 1/1/3, '5/3/1'u16, positive Ganzzahl, 0, Schreiben, bc 11 03 2b 01 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:42, 1/1/3, '5/3/0'u16, positive Ganzzahl, 0, Schreiben, bc 11 03 2b 00 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
              2011-10-22 06:30:43, 1/1/3, '5/3/2'u16, positive Ganzzahl, 0, Schreiben, bc 11 03 2b 02 83 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

              Hiiiilfe. Kalter Fußboden im Bad = böser Keller - WAF

              Harry

              Kommentar


                #8
                Zitat von FHarry Beitrag anzeigen
                Hi,
                es will immer noch nicht.
                Bitte genau https://knx-user-forum.de/184145-post6.html lesen. Die Verschachtelung vermeiden (aus den genannten Gründen):
                ALSO
                if FBHBlocked == OFF and chtime (...) then

                und das für jedes chtime! Dann wirds auch wieder warm.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  Hallo auch,

                  jawoll, so funktioniert es auch genau so wie es soll.

                  Danke.

                  Kommentar

                  Lädt...
                  X