Ankündigung

Einklappen
Keine Ankündigung bisher.

Einfache Schaltuhr für Anfänger

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

    Einfache Schaltuhr für Anfänger

    Hallo,

    zunächst: Das sind meine ersten Schritte im EIBPC. Bin also noch ein völlig ahnungslos (hoffentlich nicht mehr lange)

    Ich habe eine Zirkualtionspumpe. Diese möche ich stündlich (tagsüber) pro Stunde 5 min laufen lassen. Die Nachlaufzeit / Ausschaltung erledigt der Aktor über einen Treppenhausautomat.

    Die Einschaltung soll entweder manuell über Taster (nachts) oder über den EibPC erfolgen.

    Ich habe eine Schleife geschrieben und eine Zeile zum Test
    Code:
    // Zeitschaltprogramm für Zirkulationspumpe
    if (chtime(05,30,0) or chtime(06,30,0) or chtime(06,30,0) or chtime(07,30,0) or chtime(08,30,0)or chtime(09,30,0) \\
        or chtime(10,30,0) or chtime(11,30,0)or chtime(12,30,0) or chtime(13,30,0) or chtime(14,30,0) or chtime(15,30,0) \\
        or chtime(16,30,0) or chtime(17,30,0) or chtime(18,30,0) or chtime(19,30,0) or chtime(20,30,0)or chtime(21,30,0) \\
        or chtime(22,30,0) or chtime(23,30,0)) then \\
        write ("Zirkulationspumpe-3/6/0",EIN) \\
    endif
    
    if chtime(13,39,0) then write("Zirkulationspumpe-3/6/0",EIN) endif
    Die Ausgabe bei den Meldungen funktioniert:
    Code:
    % 2013-04-03 13:39:00 | Sender: EibPC | GA: "Zirkulationspumpe-3/6/0" | Wert: EIN | Typ: Binärwert |  Schreiben
    Der Aktor schaltet aber nicht. Manuell funktioniert es (also per Taster). Kann also nicht am Aktor liegen.
    Die GA wird nicht auf den Bus gesendet. Zumindest sehe ich im Gruppenmonitor der ETS4 keine Meldung

    Vielen Dank und Grüße
    Knut

    #2
    Moin Knut,

    [highlight=epc]
    if ( chtime(05,30,0) .... ) then \\
    write ("Zirkulationspumpe-3/6/0",EIN) \\
    endif
    [/highlight]

    geht einmal morgens um 5:30 auf EIN und danach passiert den Rest des Tages nichts mehr. Validierungsschema ist der richtige Suchbegriff für Dich und schau Dir die Definition für chtime() an.

    Eventuell reicht auch ein cycle() für Deinen Zweck aus.

    Gruß,
    Bernd

    Kommentar


      #3
      Danke für deine Tipp. Ich mach mich mal schlau.
      Trotzdem wurde die GA nicht im Gruppenmonitor der ETS angezeigt.
      Kann es sein, dass der EibPC die schon auf "EIN" gesetzt hat und dann nicht mehr neu auf den Bus schreibt?
      Danke und Grüße
      Knut

      Kommentar


        #4
        Zitat von kgb Beitrag anzeigen
        Kann es sein, dass der EibPC die schon auf "EIN" gesetzt hat und dann nicht mehr neu auf den Bus schreibt?
        Nein, das Problem ist, dass die Oder-Bedingung nur einmal von AUS auf EIN wechselt:
        if chtime(6,00) or chtime(12,00) then .. endif
        schaltet nur um 6, da ab dann OR bereits einmal ausgwertet wurde und sich bis Mitternacht nicht mehr ändert (siehe Handbuch Valdierungsschema).
        Du könntest mit htime anstelle von chtime arbeiten.
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Vielen Dank für die Tipps. Ich probier's.

          Inzwischen habe ich auch entsprechenden Passus im Handbuch gefunden:

          "Anfänger: Finger weg von verschachtelten If-Schleifen!"

          Kommentar


            #6
            Kann es sein, dass mei EibPC nicht auf den Bus kommt?
            Code:
            % C:/Users/Knut/Documents/KNX/EibPC/EibStudio-win/EibstudioData/nconf -k 192.168.178.31
            % C:/Users/Knut/Documents/KNX/EibPC/EibStudio-win/EibstudioData/nconf -c "C:/Users/Knut/Documents/KNX/EibPC/EibStudio-win/EibstudioData/tmpConf.txt" 192.168.178.31
            % Datenübertragung beendet.
            % Programm wird neu gestartet.
            % InitGA Gruppenaddressen werden am Bus abgefragt.
            % Startvorgang beendet. EibPC befindet sich ab jetzt in regulaerem Betriebsmodus. (Ereignisschleife)
            % 2013-04-03 21:39:40 | Sender: EibPC | GA: "OG Lounge Sternenhimmel Status-1/4/61" | Wert: ?%  | Typ: ?%  |  Lesen
            % 2013-04-03 21:39:41 | Sender: EibPC | GA: "OG Lounge Deckenlicht Status-1/4/62" | Wert: ?%  | Typ: ?%  |  Lesen
            % 2013-04-03 21:39:43 | Sender: EibPC | GA: "OG Lounge SD Traverse Status-1/4/63" | Wert: ?%  | Typ: ?%  |  Lesen
            % 2013-04-03 21:39:44 | Sender: EibPC | GA: "OG Lounge SD PC Status-1/4/64" | Wert: ?%  | Typ: ?%  |  Lesen
            % 2013-04-03 21:39:46 | Sender: EibPC | GA: "EG Dekolicht-1/4/6" | Wert: ?%  | Typ: ?%  |  Lesen
            % 2013-04-03 21:41:00 | Sender: EibPC | GA: "Zirkulationspumpe-3/6/0" | Wert: EIN | Typ: Binärwert |  Schreiben
            Im Gruppenmonitor kommt immer noch nichts.....

            Kommentar


              #7
              Zitat von kgb Beitrag anzeigen
              Kann es sein, dass mei EibPC nicht auf den Bus kommt?
              Im Gruppenmonitor kommt immer noch nichts.....
              Möglich. Was hast Du denn eingestellt? FT12 oder IP? Was zeigt sich denn bei Drücken des Info-Buttons?
              offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
              Enertex Produkte kaufen

              Kommentar


                #8
                Das war's. Dankeschön. Habe auf IP umgestellt. Jetzt geht's (mit htime.....)
                Geht das auch einfacher?
                Also zB. nur von 5h morgens bis 24h jede Stunde
                Code:
                tagsueber = hour()
                if (tagsueber>=5 AND tagsueber=<23) then if (mtime(30,0) then write (1/0/0,EIN)
                endif
                endif
                oder so ähnlich?

                Kommentar


                  #9
                  kurze Zwischenfrage..

                  bekommst du die Vor- bzw. Rücklauftemp deiner Zirkupumpe irgendwie auf den
                  Bus ??

                  hab das bei mir nämlich nicht zeitlich geregelt, sondern über die Temp..

                  also wenn zwischen X Uhr und Y Uhr die Temp auf einen T1 Wert absinkt soll
                  die Zirkupumpe laufen bis sie einen T2 Wert erreicht...

                  das funktioniert recht gut.. und ist auch recht konfortabel...

                  wenn nicht...

                  [highlight=epc]
                  Freigabe_ZP= AUS
                  if chtime(05,00,00) and !chtime(23,00,00) then Freigabe_ZP=EIN endif
                  if Freigabe_ZP==EIN and cycle(60,00) then write (1/0/0, EIN) endif

                  [/highlight]

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

                  Kommentar


                    #10
                    Zitat von kgb Beitrag anzeigen
                    Ich habe eine Zirkualtionspumpe. Diese möche ich stündlich (tagsüber) pro Stunde 5 min laufen lassen.
                    Nun das geht eigentlich sehr einfach und sicher ohne Treppenautomat:
                    [highlight=epc]// Zeitschaltprogramm für Zirkulationspumpe
                    Tags=chtime(5,30,00) and !chtime(23,30,00)
                    if Tags and mtime(00,00) then {
                    write ("Zirkulationspumpe-3/6/0",EIN)
                    }endif
                    // 30*1000*60= Verzögerungszeit in ms
                    if after("Zirkulationspumpe-3/6/0"==EIN,1800000u64) then {
                    write("Zirkulationspumpe-3/6/0",AUS)
                    }endif

                    [/highlight]
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      ach ja.. das ausschalten fehlt in meinem Code natürlich noch

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

                      Kommentar


                        #12
                        Vielen Dank für die schnelle und hilfreichen Tipps.

                        Kommentar


                          #13
                          Code:
                          // Zeitschaltprogramm für Zirkulationspumpe
                          Tags=chtime(6,25,00) and !chtime(23,00,00)
                          if Tags and mtime(00,00) then {
                          write ("Umwälzpumpe WW-0/7/0",EIN)
                          }endif
                          // 30*1000*60= Verzögerungszeit in ms
                          if after("Umwälzpumpe WW-0/7/0"==EIN,1800000u64) then {
                          write("Umwälzpumpe WW-0/7/0",AUS)
                          }endif
                          Also, ich habe diesen Code nach Vorlage von enertegus bei mir eingefügt, aber mit dem ergebnis, dass die Pumpe ab und zu abschaltet, aber die meiste Zeit läuft?
                          Kann mir jemand helfen?
                          Danke.

                          Nachtrag: die Umwälzpumpe ist jetzt ca. 30 Minuten gelaufen und ist jetzt auf aus.
                          Ziel war ja nur 5 Minuten pro Stunde. Stimmt da was an der Zeiteinstellung nicht?

                          Kommentar


                            #14
                            Zitat von matwei Beitrag anzeigen
                            dass die Pumpe ab und zu abschaltet, aber die meiste Zeit läuft?
                            Du bist da etwas ungenau: Kannst Du mal die Telegramme posten? Was ist ab und zu?
                            Ich habe / 30*1000*60= Verzögerungszeit in ms angegeben. Das sind 30 x 60 Sek also 30 Minuten - war auch nur als Beispiel gedacht. Ggf. dann einfach mal die Zeit anpassen. Ich hoffe es ist klar, dass die after-Anweisung, 2.-tes Argument gemeint ist.
                            offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                            Enertex Produkte kaufen

                            Kommentar


                              #15
                              Also läuft sie immer 30 Minuten oder wie muss ich das verstehen.
                              Was muss ich eingeben, damit die Pumpe z.B. alle 30 Minuten 5 Min läuft?

                              Da bin ich etwas überfordert um ehrlich zu sein.
                              Danke.

                              Kommentar

                              Lädt...
                              X