Ankündigung

Einklappen
Keine Ankündigung bisher.

Suche Hilfe mit Bustelegramm/Code

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

    Suche Hilfe mit Bustelegramm/Code

    Hallo !

    Habe den eibPC jetzt ca eine Woche in Betrieb. Sehr schönes Teil :-)

    Leider hänge ich schon seid ein paar Tagen an einem Problem fest.

    Folgende Situation:

    Ich habe einen 230 V Helligkeitssensor der auf einen Binäreingang geschaltet ist.
    Jetzt möchte ich das wenn die Sonne aufgeht und es hell genug ist,
    dass die Rolläden hoch laufen. Diese Funktion soll über einen Taster frei
    geschaltet werden und nur an Wochentagen aktiv sein. nachdem ein weiterer
    Taster gedrückt wird sollen die Rolläden auch am Wochenende laufen.

    Hier mal mein Code dazu:
    Code:
    // Helligkeitsfunktion nur Werktags
    if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==EIN and dayofweek()==WERKTAGS and ("Schalter Wochenende-8/0/1")==AUS then write ("Rolladen Zentral laufen-7/0/24",AUS) endif
    if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==AUS and dayofweek()==WERKTAGS and ("Schalter Wochenende-8/0/1")==AUS then write ("Rolladen Zentral laufen-7/0/24",EIN) endif
    
    // Helligkeitsfunktion auch am Wochenende
    if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==EIN and ("Schalter Wochenende-8/0/1")==EIN then write ("Rolladen Zentral laufen-7/0/24",AUS) endif
    if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==AUS and ("Schalter Wochenende-8/0/1")==EIN then write ("Rolladen Zentral laufen-7/0/24",EIN) endif
    soweit so gut. Das komische ist nur wenn ich die Funktion anschalte passiert erstmal nichts. Schalte ich über die Freigabe
    die Funktion aus und wieder ein dann funktioniert der Code. Das gleiche wenn ich die Wochenendfunktion ausschalte bleibt
    das ganze Programm hängen.

    Habe so das dumpfe Gefühl als würde der eibPC die Schalterzustände "vergessen" oder mir fehlt
    eine "Zustandsabfrage" bei start des Programmes....

    Bin für jede Hilfe dankbar......

    #2
    Hi Amokinside,

    suche mal im Forum bzw. im Handbuch nach "Validierungsschema" und lies das genau durch. Wahrscheinlich siehst Du dann die Lösung näherkommen.

    Gruß,
    Bernd

    Kommentar


      #3
      Danke ! Werde ich mal durchlesen.

      den ersten Fehler habe ich schon gefunden.....

      dayofweek()=WERKTAGS scheint wohl nicht zu funktionieren.......

      Kommentar


        #4
        Zitat von amokinside Beitrag anzeigen
        den ersten Fehler habe ich schon gefunden.....
        dayofweek()=WERKTAGS scheint wohl nicht zu funktionieren.......
        Da hast Du recht. dayofweek kennt nur die Wochentage.
        Das eigentliche Problem liegt - wie schon der Bernd schreibt -wohl wo anders.
        Du müsstest coden
        [highlight=epc]
        // Helligkeitsfunktion nur Werktags
        Werktags=!(dayofweek()==SONNTAG or dayofweek()==SAMSTAG)
        if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==EIN and event("Helligkeitssensor-9/0/0") and Werktag and ("Schalter Wochenende-8/0/1")==AUS then write ("Rolladen Zentral laufen-7/0/24",AUS) endif
        if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==AUS and event("Helligkeitssensor-9/0/0") and Werktag and ("Schalter Wochenende-8/0/1")==AUS then write ("Rolladen Zentral laufen-7/0/24",EIN) endif
        [/highlight]
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Ich mal wieder mit einem Problemchen.....

          Der Code funktioniert soweit sehr gut !

          Code:
          [LEFT][LIST=1][*][FONT=Courier New][COLOR=#0000ff]// Helligkeitsfunktion nur Werktags[/COLOR][/FONT][*][FONT=Courier New]Werktags=![COLOR=#000000]([/COLOR][COLOR=#e63ec3]dayofweek[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]==SONNTAG [COLOR=#e63ec3]or[/COLOR] [COLOR=#e63ec3]dayofweek[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]==SAMSTAG[COLOR=#000000])[/COLOR][/FONT][*][FONT=Courier New][COLOR=#e63ec3]if[/COLOR]  [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Helligkeitsfunktion-8/0/0"[/COLOR][COLOR=#000000])[/COLOR]==EIN  [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR]==EIN [COLOR=#e63ec3]and[/COLOR] [COLOR=#e63ec3]event[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#e63ec3]and[/COLOR] Werktag [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Wochenende-8/0/1"[/COLOR][COLOR=#000000])[/COLOR]==AUS [COLOR=#e63ec3]then[/COLOR] [COLOR=#e63ec3]write[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Rolladen Zentral laufen-7/0/24"[/COLOR],AUS[COLOR=#000000])[/COLOR] [COLOR=#e63ec3]endif[/COLOR][/FONT][*][FONT=Courier New][COLOR=#e63ec3]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Helligkeitsfunktion-8/0/0"[/COLOR][COLOR=#000000])[/COLOR]==EIN [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR]==AUS [COLOR=#e63ec3]and[/COLOR] [COLOR=#e63ec3]event[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#e63ec3]and[/COLOR] Werktag [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Wochenende-8/0/1"[/COLOR][COLOR=#000000])[/COLOR]==AUS [COLOR=#e63ec3]then[/COLOR] [COLOR=#e63ec3]write[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Rolladen Zentral laufen-7/0/24"[/COLOR],EIN[COLOR=#000000])[/COLOR] [COLOR=#e63ec3]endif[/COLOR] [/FONT][/LIST]
          
          [/LEFT]
          Jetzt möchte ich den Code dahin erweitern das der Rolladen morgens nicht vor 8 Uhr und abends nicht vor 17 Uhr läuft.

          Ich versuche dies im Moment mit der Funktion chtime in der If-Anweisung zu verwursteln aber leider ohne Erfolg.....

          Kommentar


            #6
            Hallo,

            Ich versteh zwar den zweiten Schalter für das Wochenende nicht, aber vielleicht kannst Du Dir hier etwas ableiten:

            [highlight=epc]

            [EibPC]
            WhzAutoRollo="whz rollladen hand/automatik-3/1/10"

            // Rollo Abends
            if Nacht and ((WhzZeitAbendsWoche and Werktags) or (WhzZeitAbendsWe and !Werktags)) and WhzAutoRollo then {
            write ("whz rollladen pos% anfahren-3/1/16",90%)
            } endif

            // Rollo Morgens

            if Tag and ((WhzZeitMorgensWoche and Werktags) or (WhzZeitMorgensWe and !Werktags)) and WhzAutoRollo then {
            write ("whz rollladen pos% anfahren-3/1/16",0%)
            } endif

            [Macros]
            //Schaltuhr
            WebSchaltuhr(WhzZeitMorgensWocheID,WhzRolloID,WhzZ eitMorgensWoche,07,00)
            WebSchaltuhr(WhzZeitMorgensWeID,WhzRolloID,WhzZeit MorgensWe,09,00)
            WebSchaltuhr(WhzZeitAbendsWocheID,WhzRolloID,WhzZe itAbendsWoche,17,00)
            WebSchaltuhr(WhzZeitAbendsWeID,WhzRolloID,WhzZeitA bendsWe,19,00)


            [/highlight]

            Tag und Nacht musst Du mit Deinem Binäreingang definieren.

            Uwe

            Kommentar


              #7
              Zitat von amokinside Beitrag anzeigen
              Jetzt möchte ich den Code dahin erweitern das der Rolladen morgens nicht vor 8 Uhr und abends nicht vor 17 Uhr läuft.
              Versuchs mal so:
              [highlight=epc]
              Werktags=!(dayofweek()==SONNTAG or dayofweek()==SAMSTAG)
              Zeit=chtime(8,0,0) and !chtime(17,0,0)
              if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==EIN and event("Helligkeitssensor-9/0/0") and Werktag and Zeit and ("Schalter Wochenende-8/0/1")==AUS then write ("Rolladen Zentral laufen-7/0/24",AUS) endif

              if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==AUS and event("Helligkeitssensor-9/0/0") and Werktag and ("Schalter Wochenende-8/0/1")==AUS and Zeit then write ("Rolladen Zentral laufen-7/0/24",EIN) endif
              [/highlight]
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Erst einmal Danke für die Antworten !

                Soweit funktioniert es mit dem Code :

                Code:
                [LEFT][LIST=1][*][FONT=Courier New]Werktags=![COLOR=#000000]([/COLOR][COLOR=#e63ec3]dayofweek[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]==SONNTAG [COLOR=#e63ec3]or[/COLOR] [COLOR=#e63ec3]dayofweek[/COLOR][COLOR=#000000]([/COLOR][COLOR=#000000])[/COLOR]==SAMSTAG[COLOR=#000000])[/COLOR][/FONT][*][FONT=Courier New]Zeit=[COLOR=#e63ec3]chtime[/COLOR][COLOR=#000000]([/COLOR][COLOR=#0b610b]8[/COLOR],[COLOR=#0b610b]0[/COLOR],[COLOR=#0b610b]0[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#e63ec3]and[/COLOR] ![COLOR=#e63ec3]chtime[/COLOR][COLOR=#000000]([/COLOR][COLOR=#0b610b]17[/COLOR],[COLOR=#0b610b]0[/COLOR],[COLOR=#0b610b]0[/COLOR][COLOR=#000000])[/COLOR][/FONT][*][FONT=Courier New][COLOR=#e63ec3]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Helligkeitsfunktion-8/0/0"[/COLOR][COLOR=#000000])[/COLOR]==EIN [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR]==EIN [COLOR=#e63ec3]and[/COLOR] [COLOR=#e63ec3]event[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#e63ec3]and[/COLOR] Werktag [COLOR=#e63ec3]and[/COLOR] Zeit [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Wochenende-8/0/1"[/COLOR][COLOR=#000000])[/COLOR]==AUS [COLOR=#e63ec3]then[/COLOR] [COLOR=#e63ec3]write[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Rolladen Zentral laufen-7/0/24"[/COLOR],AUS[COLOR=#000000])[/COLOR] [COLOR=#e63ec3]endif[/COLOR][/FONT][*][FONT=Courier New][COLOR=#e63ec3]if[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Helligkeitsfunktion-8/0/0"[/COLOR][COLOR=#000000])[/COLOR]==EIN [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR]==AUS [COLOR=#e63ec3]and[/COLOR] [COLOR=#e63ec3]event[/COLOR][COLOR=#000000]([/COLOR][COLOR=#8a0808]"Helligkeitssensor-9/0/0"[/COLOR][COLOR=#000000])[/COLOR] [COLOR=#e63ec3]and[/COLOR] Werktag [COLOR=#e63ec3]and[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Schalter Wochenende-8/0/1"[/COLOR][COLOR=#000000])[/COLOR]==AUS [COLOR=#e63ec3]and[/COLOR] Zeit [COLOR=#e63ec3]then[/COLOR] [COLOR=#e63ec3]write[/COLOR] [COLOR=#000000]([/COLOR][COLOR=#8a0808]"Rolladen Zentral laufen-7/0/24"[/COLOR],EIN[COLOR=#000000])[/COLOR] [COLOR=#e63ec3]endif[/COLOR] [/FONT][/LIST]
                
                [/LEFT]
                Ist es jetzt z.B. 7:30 und der Helligkeitssensor wird ausgelöst bleibt der Rolladen wie gewünscht zu. Wird es allerdings jetzt 8:00 Uhr fährt der Rolladen nicht hoch!?

                Verstehe das eigentlich nicht da ja alle If then Bedingungen erfüllt sind...???


                @michel38 Der Schalter Wochenende ist eigentlich falsch beschrieben. Dieser wird genutzt wenn wir ein paar Tage in Urlaub sind. Damit veranlasse ich das die Rolläden auch an Wochenden morgens und abends hochfahren

                Kommentar


                  #9
                  Zitat von amokinside Beitrag anzeigen
                  Ist es jetzt z.B. 7:30 und der Helligkeitssensor wird ausgelöst bleibt der Rolladen wie gewünscht zu. Wird es allerdings jetzt 8:00 Uhr fährt der Rolladen nicht hoch!?
                  Ja, die event-Funktion ist nur für einen Zyklus lang "EIN"
                  Versuchs mal so:
                  [highlight=epc]
                  Werktags=!(dayofweek()==SONNTAG or dayofweek()==SAMSTAG)
                  Zeit=chtime(8,0,0) and !chtime(17,0,0)
                  //Zurücksetzen um 3:00 Morgens
                  Hell=!chtime(03,00,00)
                  // Bei Helligkeit setzen
                  if ("Schalter Helligkeitsfunktion-8/0/0")==EIN and ("Helligkeitssensor-9/0/0")==EIN and event("Helligkeitssensor-9/0/0") then Hell=EIN endif
                  if Hell and Werktag and Zeit and ("Schalter Wochenende-8/0/1")==AUS then write ("Rolladen Zentral laufen-7/0/24",AUS) endif
                  endif
                  [/highlight]
                  offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                  Enertex Produkte kaufen

                  Kommentar

                  Lädt...
                  X