Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik für Helligkeitswert

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

    Logik für Helligkeitswert

    Hallo zusammen,

    ich bin auf der Suche nach einer Logik, die z.B. eine Lampe zwischen einem bestimmten Lux Wert (20 - 0) ein oder ausschaltet. Den Helligkeitswert hole ich mir von einem Bewegungsmelder. Ich wäre für ein Beispiel sehr dankbar.... Die Forumsuche hat leider nichts ergeben.
    Viele Grüße

    #2
    Ich habe bei mir eine Ansteuerung nach Sonnenstand (Höhe über/unter dem Horizont), aber das sollte Dir eine mögliche Lösung aufzeigen:

    Code:
    if (trigger['source']=='mysun.elevation'):
    	# Auswertung Elevation (einschalten)
    	if (sh.beleuchtung.config.automatik_wuerfel.onoff()):
    		if (nowhour > 12):
    			if sh.mysun.elevation() < sh.beleuchtung.config.automatik_wuerfel.elevation_ein():
    				if not(sh.wohnung.terrasse.wuerfel_schalter()):
    					sh.wohnung.terrasse.wuerfel_schalter('on', 'Logic '+logic.name)
    					logf.info('Würfel eingeschaltet (Elevation='+str(sh.mysun.elevation())+')')
    
    else:
    	# Auswertung Uhrzeit (ausschalten)
    	if sh.beleuchtung.config.automatik_wuerfel.onoff() and(not sh.wohnung.terrasse.wandleuchten_ost()):
    		if (nowhour < 4):
    			if (sh.beleuchtung.config.automatik_wuerfel.zeit_aus() < nowhour + nowminute/60):
    				sh.wohnung.terrasse.wuerfel_schalter('off', 'Logic '+logic.name)
    				logf.info('Würfel ausgeschaltet')
    Dabei sind einige Items für die Steuerung definiert:

    - sh.beleuchtung.config.automatik_wuerfel.onoff() steuert ob die Schaltung automatisch erfolgt
    - sh.beleuchtung.config.automatik_wuerfel.elevation_ ein() definiert den Winkel zum einschalten
    - sh.beleuchtung.config.automatik_wuerfel.zeit_aus() steuert die Uhrzeit zu der Ausgaschatet wird
    - Durch Auswertung von sh.wohnung.terrasse.wandleuchten_ost() wird geprüft ob andere Außenleuchten eingeschaltet sind und dann nicht per Automatik ausgeschaltet.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Vielen Dank für dein Beispiel, aber wie und wo lege ich denn die Lux Werte fest? Bzw. den Differenzwert?

      if (lux < 10): kann das so aussehen?

      viele Grüße
      Zuletzt geändert von Gatzman; 27.04.2020, 12:27.

      Kommentar


        #4
        Ich verstehe die Frage nicht ganz. Heist Dein Item in dem Du den Lux Wert speicherst denn lux? Dann müsstest Du if sh.lux() < 10: schreiben.
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          nein so heisst es nicht, aber ich denke ich habe es jetzt verstanden, hier mal meine Logik:

          Code:
          if sh.EG.ROLLADEN.GARAGENTOR() == 1: # item für mein Garagentor
              if sh.Vorgabe.Helligkeit() <= 10: # item für den Messwert vom Bewegungssenor (wird alle 10 min auf den Bus geschickt)
                 sh.EG.BELEUCHTUNG.GARAGE_WAND(1) # item Licht Garage
          so hätte ich dann mein Ziel erreicht, dass wenn es dunkel ist, unter 10 lux, und das Garagentor aufgeht, automatisch die Lampe an geht, oder?

          Vielen Dank
          Zuletzt geändert von Gatzman; 27.04.2020, 13:56.

          Kommentar


            #6
            Das könntest Du noch in ein if-Statement zusammenfassen, aber das sollte auch so funktionieren. Allerdings hast Du den 2. Teil noch nicht betrachtet: Soll das Licht auch wieder ausgehen falls das Garagentor geschlossen wird? Dann könntest Du das folgendermaßen lösen:

            Code:
            if sh.Vorgabe.Helligkeit() <= 10: # item für den Messwert vom Bewegungssenor (wird alle 10 min auf den Bus geschickt)
                if sh.EG.ROLLADEN.GARAGENTOR() == 1: # item für mein Garagentor
                   sh.EG.BELEUCHTUNG.GARAGE_WAND(1) # item Licht Garage EIN
                else:
                    sh.EG.BELEUCHTUNG.GARAGE_WAND(0) # item Licht Garage AUS
            oder kürzer:

            Code:
            if sh.Vorgabe.Helligkeit() <= 10: # item für den Messwert vom Bewegungssenor (wird alle 10 min auf den Bus geschickt)
               sh.EG.BELEUCHTUNG.GARAGE_WAND(sh.EG.ROLLADEN.GARAGENTOR()) # item Licht Garage EIN/AUS
            Diese Logik solltest Du dann über EG.ROLLADEN.GARAGENTOR triggern

            Du könntest bei einer so einfachen Abfrage auch überlegen ganz auf eine Logik verzichten und das Ganze über Item Attribute (eval, on_change) erledigen.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              #7
              Super vielen Dank.

              Leider klappt das Schliessen vom Tor nicht, da es an einem Schaltaktor hängt und über autotimer der Wert wieder auf null gesetzt wird...

              Kommentar

              Lädt...
              X