Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeitfunktionen

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

    Zeitfunktionen

    Hallo zusammen,
    weiss jemand vielleicht, wie ich beim EIBPC mit Zeiten rechnen kann?
    Im konkreten Fall möchte ich zu den Werten sunrisehour und sunriseminute 90 Minuten dazu addieren und dann an eine Zeitschaltuhr weitergeben?
    Gruß
    Georg

    #2
    Was genau meinst Du mit "an eine Zeitschaltuhr weitergeben"? Eine KNX Schaltuhr oder eine im EibPC oder eine im Expertencode?
    Letzteres wäre
    Code:
    if after(sun(),Zeit) then ... endif
    zu erreichen.
    Für alles weitere:
    Code:
    h=sunrisehour()
    m=sunriseminute()
    z=convert(h,0u16)*60u16+convert(m,0u16)+90u16
    h_add=convert(z/60u16,0u08)
    m_add=convert(mod(z,60u16),0u08))
    und die Variablen h_add und m_add entsprechend auf den Bus schreiben
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar


      #3
      Den Expertencode meine ich.
      Die Umrechnung von dir verstehe ich, was ich nicht verstehe ist, dass es dafür keine Funktionen gibt.
      Muss ich wirklich für eine einfache Addition so einen Aufwand treiben?

      Hintergrund ist: Ich benötige eine Funktion um die Rolladen zu schalten. Diese soll abhängig vom Sonnenaufgang/Sonnenuntergang sein, aber gedeckelt in beiden Richtungen. Zusätzlich benötige ich eine Zeitverschiebung der "sunrisehour/sunriseminute" um die Zeit X.
      Beispiel:
      Sonnenaufgang um 7.15 Uhr
      Grenze unten frühestens um 7.00 Uhr
      Grenze oben spätestens um 8.00 Uhr
      Da der Sonnenaufgang mir aber immer zu früh ist, möchte ich diesen um 30 Minuten verschieben.
      Somit würde in diesem Fall um 7.45 Uhr die Rollos geöffnet werden.

      Ist der Sonnenaufgang um 7.37 Uhr würden die Rollos um 8.00 Uhr aufgehen, da nach oben gedeckelt.
      Ist der Sonnenaufgang um 6.25 Uhr würden die Rollos um 7.00 Uhr aufgehen, da nach unten gedeckelt.

      Die Daten für die untere/obere Grenze, sowie der Verschiebung bekomme ich über den Bus als u08 Daten.


      Kommentar


        #4
        Bist du wirklich an den einzelnen Zeiten interessiert, oder willst du nur die beschriebene Funktion realisieren?
        Falls letzteres, wäre ein einfacherer Ansatz:

        Code:
        offset=90 // oder eben eine GA
        verschiebung=convert(offset, 0u64)*60000u64
        
        if htime(0,0,0) then verschobeneSonne=AUS endif
        if after(sun(), verschiebung) then verschobeneSonne=EIN endif
        
        if verschobeneSonne and chtime(fruehestensH, fruehestensM, 0) then write("AlloRolloAufZu-3/5/6", RAUF) endif
        if !verschobeneSonne and htime(spaetestensH, spaetestensM, 0) then write("AlloRolloAufZu-3/5/6", RAUF) endif

        Du kannst dir auch die Experten-Makros "Bei_Sonnenaufgang", "Bei Sonnenaufgang_Gedeckelt"... in EnertexSchaltuhrenV2 ansehen, ob was passendes dabei ist, bzw ein bestehendes in einer eigenen Makrolib anpassen.

        Edit: Wenn verschobeneSonne nach spätestens ist, wird bei obigem Code ein zweites Telegramm gesendet. Ggf. and !chtime(spaetestensH, spaetestensM, 0 nach chtime()einfügen, falls das stört.
        Zuletzt geändert von foobar0815; 30.01.2020, 14:47.

        Kommentar

        Lädt...
        X