Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

    Zitat von toggle Beitrag anzeigen
    Zu 2.: Vor einem Neustart von sh.py waren alle Lock-Items nicht gesetzt (false). Aber nach einem Neustart von sh.py waren manche Locks plötzlich gesetzt (true). Die eigentliche Ursache dafür konnte ich nicht ermitteln, aber seit einem Bus-Reset ist alles in Ordnung.
    Das Plugin selbst liest (in der aktuellsten Version) die Lock-Items nur, verändert sie aber nicht. Wenn sich der Wert deiner Lock-Items beim Starten ändert, dürfte die Ursache dafür irgendwo anders in der Konfiguration zu suchen sein. Starte doch smarthome.py mal mit Loglevel = debug und schau dann im Log wo/wer/was das Lock-Item verändert.

    Zitat von toggle Beitrag anzeigen
    Zu 3.: Ich wollte bloß sinnlose Auswertungen vermeiden, während die Sonne ehe nicht zu sehen ist. Es werden ja alle Conditions für alle beteiligten Fenster geprüft - das muss nicht sein.
    Eine solche Funktionalität müsste in die crontab-Funktion von smarthome.py eingebaut werden. Das Plugin reagiert ja nur auf Trigger von smarthome.py. Wenn du allerdings die Anzahl der Prüfungen reduzieren willst, kannst du ähnlich wie onkelandy in #241 ein neues Item mit AutoBlind-Plugin definieren, das die Basisprüfungen (z. B. Sonnenstand, Uhrzeit, o. ä.) vornimmt. Mit diesem Item triggerst du dann bei Bedarf die anderen AutoBlind-Items.

    Nachtrag: Willst du wirklich nach Sonnenuntergang keine Jalousien fahren? Ich fahre hauptsächlich über die Helligkeit und damit Abends auch runter ... meistens erst einige Zeit nach tatsächlichem Sonnenuntergang ...

    Grüße
    offline
    Zuletzt geändert von offline; 16.08.2015, 07:03.

    Kommentar


      Zitat von mumpf Beitrag anzeigen
      crontab funktioniert so, wie in der sh.py doku beschrieben, also auch mit sunrise bzw. sunset. Das ist natürlich nicht zyklisch. Um beides zu verbinden, mach doch einfach ein Item [Sonne], das über crontab = sunrise = 1 | sunset = 0 tagsüber true ist. Beim AutoBlind machst Du dann cycle = 300 (oder was auch immer). Und bei den Bedingungen für die Stati fragst Du as_value_Sonne = 1 ab.
      Es sollte auch Ausreichen im AutoBlind-Bedingungsset die Bedingung
      Code:
      as_min_sun_altitude = 0
      (oder einen höheren Wert) zu setzen. Dann braucht man kein separates Item.

      Kommentar


        Hi offline,

        ich würde gerne bei deinem Plugin Uhrzeiten definieren, zu denen die manuelle Sperre wieder aufgehoben wird. Meine Rollladensteuerung basiert immer noch auf der zuvor existierenden Logik, da ich hier ganz einfach zu bestimmten Zeiten alles zurücksetzen kann.
        Wir haben Zeiten, zu denen meist ohnehin niemand im Haus ist. Außerdem setze ich einmal mitten in der Nacht die Sperren zurück. Für mich sind feste Uhrzeiten praktikabler als ein Zeitablauf, da ich bei letzterem den Überblick verlieren würde, wann welcher Rollladen wieder zurückgesetzt wird.

        Kannst Du mir bitte sagen, ob - und wenn ja wie - wie ich das bei deinem Plugin umsetzen kann?

        Viele Grüße

        Arne

        Kommentar


          Hallo,
          ich hab' da noch paar Verständnisschwierigkeiten, möglicherweise verstehe ich auch nur die Doku in github nicht.

          (1): Im Full Example auf Github vermisse ich unter
          [myFirstAutoBlindControlledObject] Einträge in der Form:
          cycle = 300 crontab = 0 5 * * | 0 6 * * eval_trigger = room1.light.main | room1.light.wall
          Wie wird denn im Full Example AutoBlind getriggert?

          (2): Ich verstehe noch nicht [enter] und [leave]
          Brauche ich zu jedem Enter eine leave Bedingung?
          Im Full Example gibt es z.B. für [[night]] eine [[[enter_presence]]] Bedingung. Die Bedingunge wird gültig von 19:00 bis 9:00 Uhr.
          Wenn ich die Beschreibung lese verstehe ich: wird die Bedingung einmal erfüllt wird sie erst verlassen, wenn eine leave Bedingung das erlaubt. (An state can become current if one of the "enter" condition sets is fulfilled. Once the state is current, it can only be left if one of the "leave" condition sets is fulfilled.)
          Könnt Ihr mir das bitte nochmal genauer erklären?
          Ich sehe nämlich keine leave Bedingung. Müsste nicht dort dann eine leave-Bedingung von 9:00 Uhr bis 19:00 Uhr stehen?

          Gruss Jonah


          Kommentar


            Zitat von arnix Beitrag anzeigen
            Kannst Du mir bitte sagen, ob - und wenn ja wie - wie ich das bei deinem Plugin umsetzen kann?
            Hi,

            steht in der Doku:
            To cancel the suspension, use the locking feature. Any change on the lock-item causes the suspension to be cancelled and the automatic control to behave like set by the lock-item.
            Also einfach das Lock-Item per crontab auf 0 setzen, wann immer Du willst. Und bitten nicht enforce_updates vergessen...

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              Hi,

              Zitat von jonah64 Beitrag anzeigen
              (1): cycle = 300 crontab = 0 5 * * | 0 6 * * eval_trigger = room1.light.main | room1.light.wall
              Wie wird denn im Full Example AutoBlind getriggert?
              Du hast recht, meistens macht man es so. Aber das Item kann z.B. auch über eine Logik auf True gesetzt werden...

              Zitat von jonah64 Beitrag anzeigen
              (2): Ich verstehe noch nicht [enter] und [leave]
              Enter: Die Bedingung, die dazu führt, dass der Zustand angenommen wird. Ein Zustand ohne eine Enter-Bedingung wird immer angenommen, deswegen sollte ein solcher Zustand als letztes in der Liste stehen, so hat man eine Default-Bedingung. Es kann auch mehrere Enter-Bedingungen geben, dann muss nur eine der Enter-Bedingungen zutreffen (logisches Oder).

              Leave: Die Bedingung, die zum Verlassen eines Zustandes führt. Ein Zustand ohne eine Leave-Bedingung kann immer verlassen werden. Deswegen ist auch eine Leave-Bedingung nicht notwendig. Es kann auch mehrere Leave-Bedingungen geben, dann muss nur eine der Leave-Bedingungen zutreffen (logisches Oder).

              Probier einfach ein bisschen rum und schau Dir das Autoblind-eigene Log an, dann versteht man es sofort...

              Gruß, Waldemar

              OpenKNX www.openknx.de

              Kommentar


                Hi Jonah,

                Zitat von jonah64 Beitrag anzeigen
                (1): [...] Wie wird denn im Full Example AutoBlind getriggert?

                (2): Ich verstehe noch nicht [enter] und [leave] [...]
                Ich werde diese beiden Stellen in der Doku noch anpassen. Für die Zukunft ist geplant, dass die Doku etwas strukturierter im GitHub-Wiki landet, dann auch größtenteils zweisprachig (DE/EN). Bis das umgesetzt ist dauert es aber noch ein wenig, denn im Moment liegen meine Prioritäten wetterbedingt eher im Garten ;-))

                Grüße
                offline

                Kommentar


                  Hi Waldemar,

                  danke für die Info. Ich hatte in der Doku nachgesehen, muss den Teil aber übersehen haben. Dann spiele ich das Plugin mal auf!

                  Grüße

                  Arne

                  Kommentar


                    Hi zusammen,

                    es gibt ein kleines neues Feature: Die Dateien im erweiterten Logging können nach einer angegebenen Zeit automatisch wieder gelöscht werden.
                    Push auf GitHub ist erfolgt, Details stehen in der Doku im Bereich "Extended Logging"

                    Grüße
                    offline

                    Kommentar


                      Hallo offline,

                      ich hänge noch an folgender Problematik.

                      Ich würde gerne den Zustand "Morning" nur anspringen, wenn der laststate_item_name = Night ist. Ich kann leider die Enter Bedingungen nicht ein eindeutig definieren und muss daher auf diese Variante ausweichen.

                      Jetzt hab ich versucht als Enter Bedingung den letzten Zustand abzufragen mit "as_value_laststate_item_name = Night".
                      Dann bekomme ich aber:

                      Code:
                      condition'laststate_item_name': Ignoring because of error: Condition laststate_item_name: Neither 'item' nor 'eval' given!
                      Kann ich irgendwie auf den letzten Zustand prüfen?

                      Gruß Thomas

                      Edit: Ok, Denkfehler. Hab doch einen anderen Weg gefunden. Wäre aber trotzdem daran interessiert zu erfahren, ob ich laststate_item_id oder_name abfragen kann.
                      Zuletzt geändert von firefox; 12.09.2015, 08:34.

                      Kommentar


                        Hey,

                        tausend Dank für dieses geniale Plugin. Ich bastele seit ein paar Tagen damit und bin total begeistern.

                        Allerdings habe ich eine Verständnisfrage - ich hänge da an einer relativ einfachen Sache (dachte ich zumindest):

                        Ich benutze "auto_look" und "auto_suspend".

                        Das "auto_look" funktioniert einwandfrei , wenn ich auf die hinterlegte GA eine "1" sende, dann ist die Automatik abgeschaltet.

                        Was bei mir nicht möchte, ist die Funktion "auto_suspend".

                        Folgende Config:

                        Code:
                        [arbeitdefs]
                            type = bool
                            cycle = 60
                            name = Arbeitszimmer Rollo
                            as_plugin = active
                            as_lock_item = arbeitszimmer.rollo.auto_lock
                            as_suspend_item = arbeitszimmer.rollo.auto_suspend
                            as_suspend_time = 10
                            as_suspend_watch = arbeitszimmer.rollo.updown | arbeitszimmer.rollo.stepstop
                            as_laststate_item_id = arbeitszimmer.rollo.auto_laststate_id
                            as_laststate_item_name = arbeitszimmer.rollo.auto_laststate_name
                            as_item_height = erdgeschoss.arbeitszimmer.rollo.position
                            as_item_lamella = arbeitszimmer.rollo.lamella
                        #    as_item_presence = arbeitszimmerdefs.presence
                            as_item_brightness = aussenbereich.daemmerung
                            as_item_ost = zentralsteuerungen.sonneost
                            as_item_sued = zentralsteuerungen.sonnesued
                            as_item_west = zentralsteuerungen.sonnewest
                            [[night]]
                                as_use = autoblind.default.night
                        #        [[[enter_presence]]]
                        #            as_max_brightness = 750
                        #            as_min_time = 16:30
                        #            as_max_time = 16:35
                        #            as_negate_time = True
                        #            as_value_presence = True
                        #        [[[[enter]]]]
                        #            as_value_presence = False
                            [[dawn]]
                                as_use = autoblind.default.dawn
                            [[dusk]]
                                as_use = autoblind.default.dusk
                        #    [[suntracking]]
                        #        as_use = autoblind.default.suntracking
                            [[day]]
                                as_use = autoblind.default.day
                        Und:

                        Code:
                        [arbeitszimmer]
                            [[rollo]]
                                name = Arbeitszimmer
                                [[[auto_lock]]]
                                    type = bool
                                    knx_dpt = 1
                                    knx_send = 7/7/1
                                    knx_status = 7/7/7
                                    knx_listen = 7/7/0
                                    visu_acl = rw
                                    cache = on
                                    [[[auto_suspend]]]
                                    type = bool
                                    knx_dpt = 1
                                    knx_send = 8/0/0
                                    visu_acl = r.
                        .............
                        Bei den GA im Bereich 7/x/x und 8/x/x handelt es sich bei mir um temporäre Testadressen.

                        Wenn ich auf 7/7/0 eine "1" sende, dann ist "auto_look" aktiv. Dies werde ich dann später durch die richtige Adresse ersetzen.

                        Wenn ich auf 8/0/0 eine "1" oder "0" sende, passiert gar nichts - selbiges auch wenn ich "false" oder "true" setze.

                        Hat jemand eine Idee? Ich glaub, ich seh den Walt vor lauter Bäumen nicht mehr.

                        Liebe Grüße

                        Miguel

                        Kommentar


                          Zitat von BlackCrow Beitrag anzeigen
                          Wenn ich auf 8/0/0 eine "1" oder "0" sende, passiert gar nichts - selbiges auch wenn ich "false" oder "true" setze.

                          Hat jemand eine Idee? Ich glaub, ich seh den Walt vor lauter Bäumen nicht mehr.
                          Hi,

                          dann versuche ich mal die Bäume zu entfernen, damit Du den Wald wieder siehst...
                          1. auto_suspend ist nur mit knx_send definiert, also sendet das Item und empfängt nichts. Das gleiche mit visu_acl = r (wobei ich meine, dass ro eigentlich richtig ist). Aber das ist auch richtig so, da es nur ein Status ist! Das Item dient nur dazu, abfragen zu können, ob autoblind im suspend modus ist.
                          2. auto_suspend wird true, wenn sich eines der as_suspend_watch items ändert. Damit setzt Du die Automatik für eine einstellbare Zeit (as_suspend_time) außer Kraft.
                          3. Um auto_suspend zu löschen (also die Automatik wieder zu aktivieren), musst Du eine 0 bzw. False auf auto_lock schicken!!!
                          Hoffe, alle Klarheiten beseitigt zu haben,
                          Gruß, Waldemar
                          OpenKNX www.openknx.de

                          Kommentar


                            Zitat von firefox Beitrag anzeigen
                            Code:
                            condition'laststate_item_name': Ignoring because of error: Condition laststate_item_name: Neither 'item' nor 'eval' given!
                            Kann ich irgendwie auf den letzten Zustand prüfen?
                            Hi,

                            ich bin zwar nicht offline, aber ich antworte Dir trotzdem: Du kannst den letzten Zustand prüfen, ich mach das ganz oft, ich mache das zwar immer mit der itemid, aber das ist egal.

                            Dein Denkfehler ist, dass Du versuchst, laststate_item_name in die Bedingung reinzuschreiben. Das geht nicht. Du musst das Item nehmen, das laststate_item_name adressiert!
                            Also - als abstraktes Beispiel (musst Du an Deine Item-Namen anpassen):
                            Irgendwo steht
                            Code:
                            as_laststate_item_name = Home.mystatename
                            Dann musst Du das Item, das den Status hält (Home.mystatename) für die conditions bekannt machen:
                            Code:
                            as_item_State = Home.mystatename
                            Anschließend kannst Du in den conditions dieses Item wie jedes Andere verwenden:
                            Code:
                            as_value_State = Night
                            Solltest Du mit der item_id arbeiten, dann musst Du den voll qualifizierten Item-Namen abfragen, nicht nur den Zustandsnamen.

                            Gruß, Waldemar
                            OpenKNX www.openknx.de

                            Kommentar


                              Zitat von firefox Beitrag anzeigen
                              Ich würde gerne den Zustand "Morning" nur anspringen, wenn der laststate_item_name = Night ist. Ich kann leider die Enter Bedingungen nicht ein eindeutig definieren und muss daher auf diese Variante ausweichen.

                              Jetzt hab ich versucht als Enter Bedingung den letzten Zustand abzufragen mit "as_value_laststate_item_name = Night".
                              Dann bekomme ich aber:

                              Code:
                              condition'laststate_item_name': Ignoring because of error: Condition laststate_item_name: Neither 'item' nor 'eval' given!
                              Kann ich irgendwie auf den letzten Zustand prüfen?

                              Edit: Ok, Denkfehler. Hab doch einen anderen Weg gefunden. Wäre aber trotzdem daran interessiert zu erfahren, ob ich laststate_item_id oder_name abfragen kann.
                              Hi Firefox,

                              du kannst auf den vorherigen Zustand ohne Probleme prüfen. Es gibt jedoch dafür keinen vordefinierten Wert, den man einfach abfragen kann (wie z.B. time, weekday, sun_aszimut o. ä.). Das heißt, dass du das Item angegeben musst, in dem der Wert steht. Du musst also ein Item für den Namen des letzten Status anlegen und diese Item über das Attribut as_laststate_item_name bekannt machen. Dann kannst du das gleiche Item als Item für eine Bedingung verwenden. Wenn du "as_value_laststate_item_name = Night" abprüfst, musst du das Item, als "as_item_laststate_item_name" bekanntmachen.
                              Die Fehlermeldung besagt nämlich, dass für die Prütung "laststate_item_name" weder ein Item, noch eine Eval-Funktion festgelegt ist, so dass kein aktueller Wert ermittelt werden kann.

                              Grüße
                              offline

                              Kommentar


                                Zitat von BlackCrow Beitrag anzeigen
                                Hey,

                                tausend Dank für dieses geniale Plugin. Ich bastele seit ein paar Tagen damit und bin total begeistern.

                                Allerdings habe ich eine Verständnisfrage - ich hänge da an einer relativ einfachen Sache (dachte ich zumindest):

                                [...]

                                Was bei mir nicht möchte, ist die Funktion "auto_suspend".

                                Folgende Config: [...]

                                Wenn ich auf 8/0/0 eine "1" oder "0" sende, passiert gar nichts - selbiges auch wenn ich "false" oder "true" setze.
                                Hi BlackCrow,

                                das Item, das über das Attribut "as_suspend_item" zugewiesen ist, kann nur dazu verwendet werden, den suspend-Status zu ermitteln. (Daher ist auch knx_send ausreichend, Wertänderungen dieses Items werden vom Plugin ignoriert)
                                Um suspend zu aktivieren, musst du einen Wert auf eines der Items schicken, die du als "as_suspend_watch" angegeben hast.

                                Grüße
                                offline

                                Kommentar

                                Lädt...
                                X