Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

  • BlackCrow
    antwortet
    Hi offline,

    das hat jetzt geklappt. Da stand ich wohl irgendwie auf dem Schlauch. Danke!!

    Ich habe zwar noch immer nicht ganz verstanden, warum "send", aber es funktioniert jetzt, daher ist es auch nicht so wild. Ich habe das "send" einfach ausgeklammert.

    Jetzt habe ich noch eine letzte Sache auf dem Herzen:

    Für die Schlafzimmer benötige ich eine etwas komplexere Steuerung. Dabei soll unterschieden werden zwischen "normaler Modus" und "Urlaubs Modus". Ziel ist es, dass man im Urlaub etwas länger schlafen kann, ohne von den Rollos geweckt zu werden, da sie sonst schon sehr früh hochfahren dürfen. )

    Folgender Ablauf ist gewünscht:

    - Wenn "normal Modus" und Werktags fahre das Rollo bei Dunkelheit, frühstens aber um 22 Uhr runter. Fahre es wieder hoch um 7.00 Uhr unabhängig von Helligkeit
    - Wenn "normal Modus" und Wochenende (beginnend ab Freitag Vormittag meinetwegen", dann fahre das Rollo bei Dunkelheit, aber frühestens um 22 Uhr runter. Fahre es wieder hoch, unabhängig von Helligkeit frühestens um 10 Uhr

    - Wenn Urlaubsmodus - dann verhalte Dich so wie am Wochenende

    Ich bin mir sicher, dass es funktioniert. Allerdings frage ich mich, in welcher Reihenfolge und wie tief ich die Bedingungen machen muss, damit er da nicht durcheinander kommt. Es gibt ja auch diese feine Funktion "Day", welche sicherlich den Tag in der Woche festlegt. Dabei ist "0" Montag und "6" Sonntag oder wie ist das gemeint?

    Sorry, wenn ich mich hier etwas schusselig anstelle, aber das ist mein erstes komplexeres Projekt.

    Liebe Grüße

    Miguel

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi offline,

    das ist cool, dann werde ich mal wieder umbauen :-) laststate brauche ich immer öfters, vor allem als Ersatz für leave-Bedingungen. Man kann so in einem Zustand verbleiben und bei neuen Außen-Einflüssen wird kann anderer (vorheriger) Zustand trotzdem eingenommen werden. Wenn man das nicht macht, muss man unter Umständen viele und aufwändige leave-Bedingungen formulieren...

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • offline
    antwortet
    Hallo zusammen,

    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".
    (..)
    Ich habe hier auch nochmal was eingebaut, da eine solche Bedingung sicherlich häufiger gebraucht werden kann. Es gibt nun die "besondere" Bedingung "laststate", über die die Id des vorherigen Zustands abgeprüft werden kann. Mit dieser Änderung ist nur folgende Bedingung erforderlich:
    Code:
    as_value_laststate = my.autostate.condition.night
    Wichtig ist hierbei, dass der volle Item-Pfad zu dem Item angegeben wird, das den Status definiert.

    Die Änderung ist im develop-Zweig auf GitHub enthalten.

    Grüße
    offline

    Zuletzt geändert von offline; 13.09.2015, 14:20. Grund: Typo

    Einen Kommentar schreiben:


  • offline
    antwortet
    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

    Einen Kommentar schreiben:


  • offline
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    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

    Einen Kommentar schreiben:


  • firefox
    antwortet
    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.

    Einen Kommentar schreiben:


  • offline
    antwortet
    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

    Einen Kommentar schreiben:


  • arnix
    antwortet
    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

    Einen Kommentar schreiben:


  • offline
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    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

    Einen Kommentar schreiben:


  • jonah64
    antwortet
    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


    Einen Kommentar schreiben:

Lädt...
X