Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik für Raffstore-Steuerung

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

    Logik für Raffstore-Steuerung

    Hallo zusammen,

    ich habe in den letzten Tagen eine Logik zur Steuerung meiner Raffstores in die Tastatur geklimpert. Dabei wurden auch die diversen Wünsche und Einwände meiner besseren Hälfte berücksichtigt ("Nein, im Schlafzimmer soll der Raffstore nicht vor acht Uhr hochgehen, nur weil es draußen hell ist ....", "Im Kinderzimmer soll der Raffstore aber für den Mittagsschlaf unten sein ...")
    Das ganze ist dadurch ziemlich flexibel geworden und ich möchte euch mein Werk nicht vorenthalten.

    Zur Konfiguration:
    Zu jedem Raffstore werden die Items "hoehe", "lamelle", "RaffstoreAutomatik" und "AutomatikPosition" benötigt.
    Über "hoehe" und "lamelle" wird der Raffstore in eine bestimmte Position gefahren.
    "RaffstoreAutomatik" enthält die komplette Logik-Konfiguration für den jeweiligen Raffstore und "AutomatikPosition" dient zum zwischenspeichern der zuletzt von der Logik ermittelten Position.
    Unterhalb von "RaffstoreAutomatik" gibt es die Attribute "aktiv" (Logik aktivieren oder deaktivieren) und "item_helligkeit" (das Item, über das die Helligkeit ermittelt wird)
    Außerdem gibt es unterhalb von "RaffstoreAutomatik" beliebig viele weitere untergeordnete Items, die jeweils eine Raffstore-Position und die Bedingungen zum Anfahren dieser Position beschreiben. Die Logik prüft alle Positions-Items durch. Das erste, bei dem die Bedingungen erfüllt sind, wird angefahren.
    Zusätzlich können über Attribute Bedingungen in den Positions-Items festgelegt werden, wann ein einmal angefahrenes Item wieder verlassen werden kann. Uhrzeiten werden bei den Bedingungen als [Stunde],[Minute] angegeben, die Positionen als [% Höhe],[% Lamelle]

    Das ganze schaut dann beispielsweise so aus:
    Code:
    [zimmer]
        [[raffstore]]
                    [[[links]]]
                            name = Raffstore Links
                            [[[[RaffstoreAutomatik]]]]
                                    aktiv = 1                                                       # 1: Logik aktiv, 0: Logik inaktiv
                                    item_helligkeit = aussen.wetterstation.helligkeit123d           # Item, über das die Helligkeit ermittelt wird
                                    [[[[[Nacht]]]]]
                                            name = Nacht                                            # Name für das Positions-Item
                                            max_helligkeit = 200                                    # Helligkeit Obergrenze
                                            min_zeit = 17,0                                         # Uhrzeit Untergrenze
                                            max_zeit = 8,0                                          # Uhrzeit Obergrenze
                                            position = 100,0                                        # Raffstore Position
                                    [[[[[DaemmerungMorgens]]]]]
                                            name = Dämmerung Morgens                                # Name für das Positions-Item
                                            min_helligkeit = 200                                    # Helligkeit Untergrenze
                                            max_helligkeit = 500                                    # Helligkeit Obergrenze
                                            min_zeit = 0,0                                          # Uhrzeit Untergrenze
                                            max_zeit = 12,0                                         # Uhrzeit Obergrenze
                                            position = 100,25                                       # Raffstore Position
                                    [[[[[DaemmerungAbends]]]]]
                                            name = Dämmerung Abends                                 # Name für das Positions-Item
                                            min_helligkeit = 200                                    # Helligkeit Untergrenze
                                            max_helligkeit = 500                                    # Helligkeit Obergrenze
                                            min_zeit = 12,0                                         # Uhrzeit Untergrenze
                                            max_zeit = 24,0                                         # Uhrzeit Obergrenze
                                            position = 100,75                                       # Raffstore Position
                                    [[[[[TagNachfuehren]]]]]
                                            name = Tag (nachfuehren)                                # Name für das Positions-Item
                                            min_helligkeit = 45000                                  # Helligkeit Untergrenze
                                            leave_max_helligkeit = 30000                            # Helligkeit Obergrenze zum Verlassen des Items
                                            min_sun_altitude = 20                                   # Mindesthöhe Sonne
                                            min_sun_azimut = 170                                    # Mindestrichtung Sonne
                                            max_sun_azimut = 270                                    # Maximalrichtung Sonne
                                            position = auto                                         # Raffstore Position
                                    [[[[[TagStatisch]]]]]
                                            name = Tag (statisch)                                   # Name für das Positions-Item
                                            min_zeit = 6,0                                          # Uhrzeit Untergrenze
                                            max_zeit = 22,0                                         # Uhrzeit Obergrenze   
                                            position = 0,100                                        # Raffstore Position 
                            [[[[AutomatikPosition]]]]
                                    type = str
                                    visu_acl = r
                                    cache = on
                [[[[hoehe]]]]
                    type = num
                    knx_dpt = 5.001
                    knx_send = 1/1/1
                    knx_init = 1/1/2
                    visu_acl = rw
                    cache = on
                [[[[lamelle]]]]
                    type = num
                    knx_dpt = 5.001
                    knx_send = 1/1/3
                    knx_init = 1/1/4
                    visu_acl = rw
                    cache = on
    Grüße
    Thomas
    Angehängte Dateien

    #2
    Wow. Umfangreich.

    Wäre das nicht etwas fürs GIT?

    Gruß,
    Hendrik

    Kommentar


      #3
      Die Logik sieht echt toll aus!

      Wird die Logic in logic.conf zyklisch aufgerufen?

      Gruß Ivan

      Kommentar


        #4
        Ja, im Moment rufe ich die Logik zyklisch, alle 10 Minuten auf.

        Kommentar


          #5
          Tolles Teil Sperre wie

          Die Logik ist sehr gut und mt guten Parametern.
          Wie stelle ich das an um Aktvi = 1 oder = 0 mit eine Item zu schalten?

          Danke noch mal für die Logik!

          MfG Mario

          Kommentar


            #6
            Zitat von MNKunde Beitrag anzeigen
            Wie stelle ich das an um Aktvi = 1 oder = 0 mit eine Item zu schalten?
            Da müsste man die Logik umbauen, so dass statt dem Attribut ein separates Item geprüft wird.

            Vielleicht können da aber auch deine Jalousieaktoren weiterhelfen. Meine Aktoren (Theben JMG/JME) haben ein Objekt zum Sperren der Komfort-/Automatikfunktion. Wenn dieses Objekt gesetzt ist reagieren die Aktoren nur noch auf manuelle Fahrbefehle (Auf/Ab, Step/Stop) und nicht mehr auf Vorgaben von %-Höhe und %-Lamelle. Ich habe mir dieses Objekt auf die Taster gelegt und kann dadurch die Automatik sperren und manuell verstellen.

            Grüße
            Thomas

            Kommentar


              #7
              Hallo Thomas,

              es wäre schön wenn die das ins github-Wiki stellen könntest. Dort ist ein besserer Ort für Logiken. (Kann auch auf Deutsch sein.)

              Danke & Bis bald

              Marcus

              Kommentar


                #8
                Hallo Thomas
                Wenn dieses Objekt gesetzt ist reagieren die Aktoren nur noch auf manuelle Fahrbefehle (Auf/Ab, Step/Stop) und nicht mehr auf Vorgaben von %-Höhe und %-Lamelle.
                Danke für die Antwort.
                Wenn ich diese Sperrobjete nutze ist eine Bedienung über die Visu nicht mehr
                möglich.

                Schade.

                MfG Mario

                Kommentar


                  #9
                  Ich hab' mir das mit dem aktiv/inaktiv schalten über ein separates Item nochmal überlegt. Es macht in der Tat mehr Sinn, dass die Logik darüber (de-)aktiverbar ist. Der Umbau sollte auch ziemlich einfach sein.

                  Ich werde die Logik daher entsprechend umbauen und dann ins github-wiki stellen.

                  Kommentar


                    #10
                    Done ... https://github.com/mknx/smarthome/wi...storeAutomatik

                    Kommentar


                      #11
                      Danke schön

                      Kommentar


                        #12
                        Vielen Dank

                        Ebenso vielen Dank.
                        Funktioniert sehr gut!
                        MfG Mario

                        Kommentar

                        Lädt...
                        X