Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

  • offline
    antwortet
    Hallo zusammen,

    Waldemar hat recht. Eigentlich kann man jede Leave-Bedingung auch als Enter-Bedingung ausdrücken. Allerdings müsste man sie dann bei ALLEN anderen Zuständen definieren. Man sollte sich daher immer fragen, ob man eine Leave Bedingung wirklich braucht. Im Regelfall wird die Antwort sicherlich eher "nein" lauten, denn man will ja üblicherweise nur solange in einem Zustand bleiben, wie keine anderer Zustand "besser" ist. Ich selbst nutze Leave-Bedingungen ausschließlich für den "Raffstores nachführen"-Zustand, um zu verhindern dass beim Durchzug von Wolken die Raffstores dauernd hoch und runter fahren (Hysterese für die Helligkeit und zusätzlich eine Delay-Bedingung). Ansonsten nutze ich keine Leave-Bedingungen

    Grüße
    offline

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    hier ist etwas logisches denken angesagt. Ich bin mir nicht sicher, ob es eine Allgemenlösung ist, aber ich versuche mal, den Gendankengang, der mir immer geholfen hat, zu beschreiben.

    Ein leave ist meiner Meinung nach nichts anderes als
    • Ich bin im Zustand x
    • Eine (oder mehrere) Bedingung(en) beschreibt/beschreiben, wann ich den Zustand verlassen darf
    • Der Zustand wird "festgefroren", also kein Anderer Zustand wird geprüft
    Rein logisch kann man die ersten beiden Punkte auch durch ein enter erreichen:
    • Man prüft mit as_laststate auf den Zustand x
    • Man negiert die Bedingung(en) für leave, damit sie zu enter-Bedingungen werden
    Damit hätte man eine enter-Bedingung, die dem leave entspricht, aber den Zustand nicht "festfriert", also genau das, was Du brauchst. Hier nochmal ein abstraktes Beispiel (erstmal mit leave):
    Code:
    [[Open]]
        as_set_Pos: <<schlitzposition>>
        [[[enter]]]
            as_value_FensterOffen = 1
    [[Close]]
        as_set_Pos: <<geschlossen>>
        [[[enter]]]
            as_value_IstNacht = 1
        [[[leave]]]
           as_value_IstNacht = 0
    Das ist konzeptionell Dein Problem, denn Close wird nicht verlassen, bis IstNacht = 0 wird. Wenn man aber daraus

    Code:
    [[Open]]
        as_set_Pos: <<schlitzposition>>
        [[[enter]]]
            as_value_FensterOffen = 1
    [[Close]]
        as_set_Pos: <<geschlossen>>
        [[[enter_Start]]]
            as_value_IstNacht = 1
        [[[enter_Stay]]]
           as_lastpos = Close
           as_value_IstNacht = 1
    macht, wird der Zustand doch verlassen, wenn das Fenster geschlossen wird.

    Anmerkungen: Das oben ist syntaktisch nicht korrekt, soll nur das Konzept aufzeigen. Ferner ist mir klar, dass man hier ganz auf enter_Stay verzichten könnte, soll wie gesagt nur zeigen, dass man eine leave-Bedingung auch als enter mit aktuellem State und einer Negierung der leave-Bedingung erreichen kann. Wie das auf Deine leave-Bedingungen anzupassen ist, musst Du selber wissen.

    Ich arbeite inzwischen fast ausschließlich ohne leave-Bedingungen, da bei mir der wichtigste (und damit erste) State der Feueralarm ist, und dieser sollte immer betreten werden können und nicht durch ein leave verhindert werden. Der Feueralarm selbst hat aber ein leave, da dieser Zustand durch nichts anderes als durch eine Manuelle Aktion an der Haustür verlassen werden darf.

    Und bevor hier Bedenken angemeldet werden: Natürlich wird der Feueralarm bei mir native in KNX abgehandelt (wie jede sicherheitskritische Funktion), dass die Logik ZUSÄTZLICHT darauf reagiert, ist eine Komfortfunktion.

    Gruß, Waldemar


    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    Hey Waldemar,

    jupp - das war das Problem. Manchmal steht man doch echt auf dem Schlauch...

    Danke!! :-)

    Jetzt funktioniert alles, bis auf das mit den Fensterkontakten: Problem ist, dass er zb. fenster_nacht_close nicht leaven kann, weil die leave-Bedingungen Vorgaben wie welcher Werktag, mindeste Uhrzeit etc hat.

    Das heisst, wenn er im fenster_nacht_close ist, und ich das Fenster öffne, dann kann er nicht in fenster_nacht_open, weil er in der alten Schleife noch eingesperrt ist.

    Da ist mir bislang noch keine vernünftige Lösung eingefallen. Schön wäre es, wenn es noch eine Art unterbedingung geben würde. - oder ich übersehe gerade etwas.

    Liebe Grüße

    Miguel

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    jetzt hab ich es gesehen: device.shutter muss noch die beiden Parameter min und max gesetzt bekommen, und zwar mit 0 und 100.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    Hi Waldemar,

    doch, das hab ich. Anbei die Confs:

    Rollodefs:
    Code:
    [arbeitdefs]
        type = bool
        cycle = 600
        name = Arbeitszimmer Rollo
        as_plugin = active
        as_lock_item = arbeitszimmer.rollo.auto_lock
        as_suspend_item = arbeitszimmer.rollo.auto_suspend
        as_suspend_time = 7200
        as_suspend_watch = erdgeschoss.arbeitszimmer.rollo.move | erdgeschoss.arbeitszimmer.rollo.stop
        as_laststate_item_id = arbeitszimmer.rollo.auto_laststate_id
        as_laststate_item_name = arbeitszimmer.rollo.auto_laststate_name
        as_item_height = arbeitszimmer.rollo.height
        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
    item.conf

    Code:
    [[[rollo]]]
                [[[[move]]]]
                    type = bool
                    visu = yes
                    enforce_updates = yes
                    visu_acl = rw
                    knx_dpt = 1
                    knx_send = 3/6/0
    <------><------>knx_cache = 3/6/0
                [[[[stop]]]]
                    type = bool
                    visu = yes
                    enforce_updates = yes
                    visu_acl = rw
                    knx_dpt = 1
                    knx_send = 3/6/1
    <------><------>knx_cache = 3/6/1
                [[[[position]]]]
                    type = num
                    visu = yes
                    visu_acl = rw
                    knx_dpt = 5.001
                    knx_send = 3/6/6
                    knx_cache = 3/6/6
    rolloautomatik.conf

    Code:
    [arbeitszimmer]
        [[rollo]]
            name = Arbeitszimmer
            [[[auto_lock]]]
                type = bool
                knx_dpt = 1
                knx_send = 7/0/0
                knx_status = 7/0/0
                knx_listen = 7/0/0 | 3/6/0 | 3/6/1
                visu_acl = rw
                cache = on
                [[[auto_suspend]]]
                type = bool
                knx_dpt = 1
    #            knx_send = 7/0/0
                visu_acl = r
            [[[auto_laststate_id]]]
                type = str
                visu_acl = r
                cache = on
            [[[auto_laststate_name]]]
                type = str
                visu_acl = r
                cache = on
            [[[updown]]]
                type = bool
                knx_dpt = 1
                knx_send = 3/6/0
                visu_acl = rw
                enforce_updates = on
            [[[stepstop]]]
                type = bool
                knx_dpt = 1
                knx_send = 3/6/1
                visu_acl = rw
                enforce_updates = on
            [[[height]]]
                type = num
                knx_dpt = 5.001
                knx_send = 3/6/6
                knx_init = 3/6/6
                visu_acl = rw
                cache = on
            [[[lamella]]]
                type = num
                knx_dpt = 5.001
                knx_send = 0/0/0
                knx_init = 0/0/0
                visu_acl = rw
                cache = on
    Der Grund, weshalb ich 2 confs für die Rollos habe: die items.conf ist meine eigentliche conf. - die anderen beiden sind für das Plugin. Ich habe es vorerst getrennt um einfacher Fehler zu finden und zu beheben. Wenn alles nachher so läuft, wie es soll, dann würde ich die rolloautomatik.conf und die items.conf zusammenführen.


    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Ich rate mal: Bei position einen knx_dpt = 5 statt knx_dpt = 5.001? Gruß Waldemar

    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    Hi Waldemar und offline,

    vielen vielen Dank für eure Hilfe. Soweit hab ich es jetzt laufen. Noch etwas voller Bugs, aber das ist meine eigene Schuld - werde ich die nächsten Tage ausbessern.

    Es ist auch schön zu sehen, dass die Entwicklung immer weiter geht - so nimmt man sich auch gern Zeit für die "Bastelei" :-)

    Jetzt habe ich noch eine Verständnisfrage und das nächste komische Erlebnis:

    Wenn das Plugin zb um 22 Uhr entscheidet, auf "Nachts, Werktags und Fenster offen" zu fahren, dann ist das ja ganz prima. Wenn ich jetzt aber zb. das Fenster zu mache, dann verweilt er in dem Status, da er den ja nicht leaven darf, da es noch immer dunkel ist etc.

    Verständnisfrage: Das ist vermutlich nur eine Frage der Umsetzung, welche Bedingungen ich ihm gebe, damit der diesen Status leaven darf und in den Status "close" fährt und umgekehrt?

    Ich habe im jetzt 50 % meiner Rollos mit dem Plugin ausgestattet - jetzt ist folgendes passiert:

    Wenn das Rollo zu 100 % geschlossen ist, dann zeigt er in der Visu nur die Hälfte an. Also 50 % sind jetzt 100 und so. Ich bin mir gerade nicht sicher - meiner Meinung nach, kann es am Plugin nicht liegen, denn das hat damit ja eigentlich nichts zu tun. Fakt ist aber: Es funktionierte vorher einwandfrei.

    Anbei ein Screen:

    Rollo.jpg

    Das Rollo ist zu dem Zeitpunkt komplett geschlossen.

    Der Code dazu:

    Code:
    <div class="block">
    <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
     <div data-role="collapsible" data-collapsed="false">
       <h3>Rolladen Arbeitszimmer</h3>
        {{ device.shutter ('shutter1', 'Fenster', 'erdgeschoss.arbeitszimmer.rollo.move', '', 'erdgeschoss.arbeitszimmer.rollo.position') }}
     {{ basic.checkbox('checkbox1', 'arbeitszimmer.rollo.auto_lock', 'Automatik deaktiviert') }}
    </div>
    </div>
    </div>
    Hatte das Problem noch wer anderes?

    Liebe Grüße

    Miguel

    Einen Kommentar schreiben:


  • offline
    antwortet
    Hallo zusammen,

    ich habe eben einige Änderungen auf GitHub gepusht:
    • der Zweig "feature-condition-eval" (Wert für Bedingung über eval ermitteln) ist in den develop-Zweig aufgenommen worden.
    • Die komplette Doku ist zweisprachig (deutsch/englisch) im Wiki auf GitHub verfügbar. Die README-Datei enthält daher nur noch Links auf die Doku.

    Im nächsten Schritt werde ich das Coding, dass die Kompatibilität zu den früheren Attributen ohne das Prefix "as_" herstellt, entfernen. Wer also seine Konfiguration noch nicht umgestellt hat sollte dies demnächst tun.

    Grüße
    offline

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Zitat von BlackCrow Beitrag anzeigen
    Wie gesagt: Bei betätigung per Visu gehts - sobald ich den Taster betätige (der ja quasi nix anderes macht) gehts nicht.
    Hi,

    doch - ist was anderes, weil Du es anders definiert hast! Sowohl Dein move wie auch Dein stop machen nur ein knx_send! Der Taster macht natürlich auch ein knx_send, von dem bekommen aber Deine stop und move nichts mit. Du musst noch ein knx_cache auf die jeweilige GA hinzufügen.
    Und Dein knx_init bei position solltest Du auch durch ein knx_cache ersetzen, außer Du hast es wirklich mit Absicht nur über knx_init abgebildet.

    Du musst Dir nochmal genau durchlesen, wie die Items in sh.py funktionieren, hier speziell das knx-plugin. Da ist es genau so wichtig zu sagen, was empfangen, was gesendet, wann geantwortet wird wie bei jedem (Hardware-) KNX-Gerät.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    Hey offline und Onkelandy,

    danke für eure prompte Unterstützung. Jetzt hab ich es langsam auch verstanden - wohl typische Anfängerfehler. :-)

    Ich habe die Bedingungen jetzt entsprechend geändert - werde berichten, wenn heute Abend das Rollo fährt, ob es auf den Fensterkontakt reagiert.

    Jetzt habe ich mir gestern glatt den Kopp gestossen (kein Witz), als ich Abends noch kurz auf der Terrasse war. Kann zwar nichts kaputt gehen, aber zumindest wollte ich zum kleinen Lacher beitragen.

    Folgendes ist passiert:

    Ich hatte gestern zumindest im EG die Rollos entsprechend mit dem Plugin ausgestattet. Ich habe immer geschaut, ob das auto_suspend funktioniert, indem ich die Logs per tail beobachtet habe, wenn ich per Visu ein Rollo bewegt habe.

    Hat perfekt geklappt.

    Jetzt habe ich gestern zur Terrasse das Rollo hoch gemacht und bin raus. Als ich gerade wieder rein wollte (mit dem Handy in der Hand beschäftigt) fuhr das Rollo runter. BOING hat es gemacht und ich stand vor einer veschlossenen Terrassentür (zum Glück ja das Handy in der Hand :-)) ).

    Ich habe dann einmal getestet - siehe da: Auf den Lichtschalter reagiert das auto_suspend nicht.

    Folgende Configs (verkürzte Version):


    Defs:

    Code:
    [kuechedefs]
        type = bool
        cycle = 600
        name = Terrassentuer Kueche
        as_plugin = active
        as_lock_item = rolloterrasse.rollo.auto_lock
        as_suspend_item = rolloterrasse.rollo.auto_suspend
        as_suspend_time = 3600
        as_suspend_watch = erdgeschoss.kueche.rolloterrasse.move | erdgeschoss.kueche.rolloterrasse.stop
        as_laststate_item_id = rolloterrasse.rollo.auto_laststate_id
        as_laststate_item_name = rolloterrasse.rollo.auto_laststate_name
        as_item_height = rolloterrasse.rollo.height
        as_item_lamella = rolloterrasse.rollo.lamella
        as_item_brightness = aussenbereich.daemmerung
        as_item_ost = zentralsteuerungen.sonneost
        as_item_sued = zentralsteuerungen.sonnesued
        as_item_west = zentralsteuerungen.sonnewest
        as_item_kuechenkontakt = erdgeschoss.kueche.terrassentuer
        [[night]]
        name = Nacht Terrasse Kueche
        as_set_height = value:100
                [[[enter]]]
    #               as_max_brightness = 80
                    as_min_time = 22:00
                    as_max_time = 23:59
                    as_negate_time = false
    <------><------>as_kuechenkontakt = false
                [[[leave]]]
                   as_min_brightness = 100
                    as_min_time = 08:00
                    as_max_time = 11:00
                    as_negate_time = false

    Items
    Code:
    [[kueche]]
        [[[licht]]]
                name = Light Decke
                type = bool
                visu_acl = rw
                knx_dpt = 1
                knx_init = 1/2/16
                knx_send = 1/0/10
        <-->[[[[statusdecke]]]]
                name = Status Licht
                type = bool
                visu_acl = rw
                knx_dpt = 1
                knx_init = 1/2/16
    <------>    <-->[[[[statusarbeitsplatte]]]]
                name = Status Licht
                type = bool
                visu_acl = rw
                knx_dpt = 1
                knx_listen = 1/2/4
    [[[temperatur]]]
                type = num
                visu = yes
                history = true #<<- wenn ihr den Wert in Plots verwenden wollt
                 knx_dpt = 9
                    knx_init = 2/0/0
    
    
    [[[rolloterrasse]]]
                [[[[move]]]]
                    type = bool
                    visu = yes
                    enforce_updates = yes
                    visu_acl = rw
                    knx_dpt = 1
                    knx_send = 3/7/0
                [[[[stop]]]]
                    type = bool
                    visu = yes
                    enforce_updates = yes
                    visu_acl = rw
                    knx_dpt = 1
                    knx_send = 3/7/1
                [[[[position]]]]
                    type = num
                    visu = yes
                    visu_acl = rw
                    knx_dpt = 5
    #                knx_listen = 3/7/4
                    knx_send = 3/7/4
                    knx_init = 3/7/4
    Wie gesagt: Bei betätigung per Visu gehts - sobald ich den Taster betätige (der ja quasi nix anderes macht) gehts nicht.

    Denkfehler?

    Danke für eure Mühe, ich weiß, ich nerve :-D

    Liebe Grüße

    Miguel

    Einen Kommentar schreiben:


  • offline
    antwortet
    Zitat von BlackCrow Beitrag anzeigen
    Hey, danke für die Hilfestellung. Das war jetzt doch nicht mehr so schwer, wie erwartet.

    Ich habe die Funktion jetzt mal verbaut - allerdings macht der Log mir ein paar Sorgen:
    Da sind immer noch ein paar "as_min_day" und "as_max_day" in der Konfiguratiuon. Die musst du alle gegen "as_min_weekday" und "as_max_weekday" tauschen

    Zitat von BlackCrow Beitrag anzeigen
    Das mit den Fensterkontakten funktioniert auch nicht

    Wo liegt der Fehler?
    Du hast im Objekt-Item
    Code:
    as_item_schlkontakt = obergeschoss.schlafzimmer.fenster
    definiert. Bei den Bedingungen hast du
    Code:
    as_schlkontakt = true
    Das ist so nicht korrekt. Du musst
    Code:
    as[B]_value[/B]_schlkontakt = true
    verwenden.

    Grüße
    offline

    P.S.: Ich bin dabei die Doku zum Plugin auf deutsch im Wiki auf GitHub einzustellen: https://github.com/i-am-offline/smar...autoblind/wiki

    Einen Kommentar schreiben:


  • offline
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Laut Readme müsste es wohl weekday und nicht day heißen..? Also as_min_weekday
    In der Tat ... da hätte ich vielleicht mal meine eigene Doku lesen sollen

    Grüße
    offline

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Laut Readme müsste es wohl weekday und nicht day heißen..? Also as_min_weekday

    Einen Kommentar schreiben:


  • BlackCrow
    antwortet
    Hey, danke für die Hilfestellung. Das war jetzt doch nicht mehr so schwer, wie erwartet.

    Ich habe die Funktion jetzt mal verbaut - allerdings macht der Log mir ein paar Sorgen:

    Code:
    2015-09-13 21:21:14.297420 State schlafzimmerdefs.night_close_werktag:^M
    2015-09-13 21:21:14.297457<----> Name: Nacht Werktag Fenster zu^M
    2015-09-13 21:21:14.297492<----> Condition sets to enter state:^M
    2015-09-13 21:21:14.297527<----><------> Condition Set 'enter':^M
    2015-09-13 21:21:14.297562<----><------><------> Condition 'time':^M
    2015-09-13 21:21:14.297607<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M
    2015-09-13 21:21:14.297647<----><------><------><------> min: 22:00:00^M
    2015-09-13 21:21:14.297682<----><------><------><------> negate: False^M
    2015-09-13 21:21:14.297718<----> Condition sets to leave state:^M
    2015-09-13 21:21:14.297754<----><------> Condition Set 'leave':^M
    2015-09-13 21:21:14.297790<----><------><------> Condition 'brightness':^M
    2015-09-13 21:21:14.297827<----><------><------><------> item: aussenbereich.daemmerung^M
    2015-09-13 21:21:14.297863<----><------><------><------> min: 100^M
    2015-09-13 21:21:14.297898<----><------><------><------> negate: False^M
    2015-09-13 21:21:14.297933<----><------><------> Condition 'time':^M
    2015-09-13 21:21:14.297970<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M
    2015-09-13 21:21:14.298009<----><------><------><------> min: 07:00:00^M
    2015-09-13 21:21:14.298043<----><------><------><------> negate: False^M
    2015-09-13 21:21:14.298079<----><------><------> Condition 'day':^M
    2015-09-13 21:21:14.298114<----><------><------><------> error: Condition day: Neither 'item' nor 'eval' given!^M
    2015-09-13 21:21:14.298149<----><------><------><------> min: 0^M
    2015-09-13 21:21:14.298184<----><------><------><------> max: 4^M
    2015-09-13 21:21:14.298218<----><------><------><------> negate: False^M
    2015-09-13 21:21:14.298254<----> Actions to perform if state becomes active:^M
    2015-09-13 21:21:14.298290<----><------> Action 'height':^M
    2015-09-13 21:21:14.298327<----><------><------> item: schlafzimmer.rollo.height^M
    2015-09-13 21:21:14.298362<----><------><------> value: 100^M
    2015-09-13 21:21:14.298399 State schlafzimmerdefs.night_open_werktag:^M
    2015-09-13 21:21:14.298435<----> Name: Nacht Werktag Fenster auf^M
    2015-09-13 21:21:14.298469<----> Condition sets to enter state:^M
    2015-09-13 21:21:14.298504<----><------> Condition Set 'enter':^M
    2015-09-13 21:21:14.298540<----><------><------> Condition 'time':^M
    2015-09-13 21:21:14.298582<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M
    2015-09-13 21:21:14.298630<----><------><------><------> min: 22:00:00^M
    2015-09-13 21:21:14.298665<----><------><------><------> negate: False^M
    2015-09-13 21:21:14.298702<----> Condition sets to leave state:^M
    2015-09-13 21:21:14.298738<----><------> Condition Set 'leave':^M
    2015-09-13 21:21:14.298774<----><------><------> Condition 'brightness':^M
    2015-09-13 21:21:14.298810<----><------><------><------> item: aussenbereich.daemmerung^M
    2015-09-13 21:21:14.298845<----><------><------><------> min: 100^M
    2015-09-13 21:21:14.298880<----><------><------><------> negate: False^M
    2015-09-13 21:21:14.298915<----><------><------> Condition 'time':^M
    2015-09-13 21:21:14.298952<----><------><------><------> eval: plugins.rolloautomatik.AutoBlindCurrent.get_time^M
    2015-09-13 21:21:14.298990<----><------><------><------> min: 07:00:00^M
    2015-09-13 21:21:14.299024<----><------><------><------> negate: False^M
    2015-09-13 21:21:14.299059<----><------><------> Condition 'day':^M
    2015-09-13 21:21:14.299094<----><------><------><------> error: Condition day: Neither 'item' nor 'eval' given!^M
    Das ist die zugehörige Conf:

    Code:
    [schlafzimmerdefs]
        type = bool
        cycle = 600
        name = Schlafzimmer Rollo
        as_plugin = active
        as_lock_item = schlafzimmer.rollo.auto_lock
        as_suspend_item = schlafzimmer.rollo.auto_suspend
        as_suspend_time = 14400
        as_suspend_watch = obergeschoss.schlafzimmer.rollo.move |obergeschoss.schlafzimmer.rollo.stop
        as_laststate_item_id = schlafzimmer.rollo.auto_laststate_id
        as_laststate_item_name = schlafzimmer.rollo.auto_laststate_name
        as_item_height = schlafzimmer.rollo.height
        as_item_lamella = schlafzimmer.rollo.lamella
        as_item_brightness = aussenbereich.daemmerung
        as_item_ost = zentralsteuerungen.sonneost
        as_item_sued = zentralsteuerungen.sonnesued
        as_item_west = zentralsteuerungen.sonnewest
        as_item_schlaftemp = obergeschoss.schlafzimmer.temperatur
        as_item_schlkontakt = obergeschoss.schlafzimmer.fenster
    ....
    [[night_close_wochenende]]
        name = Nacht Wochenende Fenster zu
        as_set_height = value:100
                [[[enter]]]
    #               as_max_brightness = 80
                    as_min_time = 22:00
                    as_max_time = 23:59
                    as_negate_time = false
    as_schlkontakt = false
                [[[leave]]]
    #               as_min_brightness = 100
                    as_min_time = 10:00
                    as_min_weekday = 5
    as_max_weekday = 6
    as_negate_time = false
    
        [[night_open_wochenende]]
        name = Nacht Wochenende Fenster auf
        as_set_height = value:88
                [[[enter]]]
    #               as_max_brightness = 80
                    as_min_time = 22:00
                    as_negate_time = false
    as_schlkontakt = false
                [[[leave]]]
    #               as_min_brightness = 100
                    as_min_time = 09:30
                    as_min_weekday = 5
    as_max_weekday = 6
    as_negate_time = false
    
    [[night_close_werktag]]
        name = Nacht Werktag Fenster zu
        as_set_height = value:100
                [[[enter]]]
                    as_min_time = 22:00
    #                as_max_time = 23:59
                    as_negate_time = false
         as_schlkontakt = true
                [[[leave]]]
                   as_min_brightness = 100
        as_min_day = 0
        as_max_day = 4
       as_min_time = 7:00
    
        [[night_open_werktag]]
        name = Nacht Werktag Fenster auf
        as_set_height = value:88
                [[[enter]]]
    #               as_max_brightness = 80
                    as_min_time = 22:00
                    as_negate_time = false
    as_schlkontakt = true
                [[[leave]]]
                   as_min_brightness = 100
        as_min_day = 0
        as_max_day = 4
        as_min_time = 7:00
    Ich hab es jetzt mit as_max_day und mit as_max_weekday versucht.

    Das mit den Fensterkontakten funktioniert auch nicht

    Wo liegt der Fehler?

    Ich glaub, da wachsen schon wieder Bäume
    Zuletzt geändert von BlackCrow; 13.09.2015, 21:45.

    Einen Kommentar schreiben:


  • offline
    antwortet
    Zitat von BlackCrow Beitrag anzeigen
    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?
    Genau. der day-Wert geht von 0 (Montag) bis 6 (Sonntag)

    Zunächst musst du ein Item haben, über das das Plugin den Urlaubsmodus erkennen kann. Man kann das recht komplex haben (ich habe einen "Haus-Status", der zusammen mit der Tageszeit und ggf. Abwesenheit diverse Dinge automatisch trigert) oder auch einfach als bool-Variable. Nehmen wir für's erste mal ein Item mit Typ "bool".

    Grundsätzlich brauchst du 2 Status:
    - Rollo unten ("Nacht")
    - Rollo oben ("Tag")

    Der Status "Nacht" hat in allen Fällen die gleichen Einstiegsbedingungen:
    Code:
    as_min_time = 22:00
    as_max_brightness = (wasauchimmer)
    Für den Status Tag gibt es verschiedene Einstiegsbedingungen:
    1. Kein Urlaub, Werktag, ab 07:00 Uhr
    Code:
    as_value_urlaub = False
    as_min_day = 0
    as_max_day = 4
    as_min_time = 7:00
    2. Kein Urlaub, Wochenende, ab 10 Uhr
    Code:
    as_value_urlaub = False
    as_min_day = 5
    as_max_day = 6
    as_min_time = 10:00
    3. Urlaub, Tag egal, ab 10 Uhr
    Code:
    as_value_urlaub = True
    as_min_time = 10:00
    Natürlich muss du den Rest (Struktur, Items, etc) noch außenrum bauen.

    Die Reihenfolge dieser drei Bedingungen im Status "Tag" ist egal.

    Die Reihenfolge der beiden Status ist in diesem Fall ebenfalls ziemlich egal. Wenn keine der Bedingungen erfüllt ist und damit kein neuer Status ermittlet werden kann, bleibt das Plugin einfach im letzten Status stehen.

    Grüße
    offline

    Einen Kommentar schreiben:

Lädt...
X