Ankündigung

Einklappen
Keine Ankündigung bisher.

Beschattung nach Helligkeit steuern

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

    [EibStudio] Beschattung nach Helligkeit steuern

    Hallo zusammen,

    ich stehe irgendwie im Moment total auf dem Schlauch. Ich möchte folgendes realisieren:
    - wenn die Helligkeit über 10 Min. hinweg über 50kLux ist soll die Beschattung freigegeben werden.
    - wenn die Helligkeit über 25 Min. hinweg unter 30kLux ist soll die Beschattungsfreigabe aufgehoben werden.

    Ich komme im Moment nicht drauf wie ich das umsetzen könnte, da ich vermute dass die meisten hier die Beschattung so steuern hoffe ich auf ein paar Tips von Euch.

    Beste Grüße
    Nils

    #2
    Etwas in der Art sollte tun:

    [highlight=epc]
    ZehnMinuten=10u64*60u64*1000u64;
    FuenfUndZwanzigMinuten=25u64*60u64*1000u64;
    hell = AUS;
    Freigabe = AUS;

    // Helligkeit erkennen
    if (HELLIGKEIT > 50) then hell=EIN endif
    if (HELLIGKEIT < 30) then hell=AUS endif

    // Zeiten prüfen
    if (delay(hell==EIN, ZehnMinuten)) and (hell==EIN) then {
    Freigabe=EIN
    } endif
    if (delay(hell==AUS, FuenfUndZwanzigMinuten)) and (hell==AUS) then {
    Freigabe=AUS
    } endif
    [/highlight]

    Hinweise:
    • delay(), damit die Zeit wieder von vorne anfängt, wenn hell sich ändert.
    • Der Bereich zwischen 30 und 50 Lux wird jeweils zum letzten erkannten Helligkeitsbereich gezählt. Überschreitet Helligkeit also 50 Lux und fällt bis auf 40 Lux ab, wird nach 10Min die Freigabe erteilt. Falls man dies nicht wünscht muss man mit 2 Variablen arbeiten. Ich würde da aber eher den Helligkeitswert ändern, also z.B. 40-60 Lux nehmen.
    • nicht getestet
    BR
    Marc

    Kommentar


      #3
      ha.. wollt gerade etwas ähnliches schreiben..

      hab für meine Waschmaschine so etwas:
      [highlight=epc]
      if delay(!"Waschm.Schwellwert-6/1/1",300000u64) and !"Waschm.Schwellwert-6/1/1" and initWM then {
      [/highlight]

      wie geil ist den die Variable/Konstante: "Fuenfundzwanzigminuten"

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

      Kommentar


        #4
        Zitat von Brick Beitrag anzeigen
        wie geil ist den die Variable/Konstante: "Fuenfundzwanzigminuten"
        Min25 fand ich zu langweilig
        BR
        Marc

        Kommentar


          #5
          Besten Dank, werde ich sofort testen. Bei delay war ich auch, aber das "AND Hell=EIN" hab ich vergessen, hat dann zu merkwürdigem Verhalten geführt :-)

          Gruß Nils

          Kommentar


            #6
            Sorry, wenn ich mich hier einmische.
            @saft6luck hatte mich gerade hier auf die Besonderheit der Initialisierung hingewiesen. Wenn ich das richtig verstanden habe, sollte das auch kürzer gehen.
            statt:
            Code:
            hell = AUS;
            // Helligkeit erkennen
            if (HELLIGKEIT > 50) then hell=EIN endif
            if (HELLIGKEIT < 30) then hell=AUS endif
            dann:
            Code:
            // hell = AUS;
            hell = hysteresis(HELLIGKEIT,30,50)
            @saft6luck, stimmt das so?

            alexander

            Kommentar


              #7
              Zitat von asc570 Beitrag anzeigen
              Code:
              // hell = AUS;
              hell = hysteresis(HELLIGKEIT,30,50)
              @saft6luck, stimmt das so?
              Ja, genau, hysteresis() hatte ich nicht mehr auf dem Schirm Danke für den Tip.
              Wenn es präzise (hier sicher nicht wichtig) sein soll, muss man die Grenzen richtig setzen.

              Die Beschreibung in der Anleitung ist allerdings falsch:

              "Hat der letzte Vergleich zu einem Ergebnis 1b01 geführt und gilt (VarUnteresLimit), so
              nimmt die Funktion den Wert 0b01 an."

              Hier sollte < oder =< gelten.
              BR
              Marc

              Kommentar

              Lädt...
              X