Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

  • Marcov
    antwortet
    Nachdem ich mit eingelesen habe, frage ich mich, ob das Plugin auch für Rolladensteuerung benutzt werden kann. Ich habe ja keine Lamelleneinstellung, ich möchte nur jeweils eine bestimmte Position anfahren.
    Ist die aktuelle Version, die bei Git (die finde ich allerdings nur über google...) oder die Dropboxvariante?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Sorry, war gedanklich tatsächlich noch bei der alten Version Hier meine Config, dann sollte alles klar werden hoffe ich. Ich hab's ein wenig anders aufgebaut als du, aber es kommt auf das Gleich raus..
    Code:
    [autoblind]
    type=foo
        [[settings]]
        type = foo
            [[[night]]]
                type = foo
                [[[[max_brightness]]]]
                    type = num
                    name = Nachthelligkeit
                    visu_acl = rw
                    cache = True
                    enforce_updates  = yes
                [[[[min_time]]]]
                    type = str
                    name = Nachtstartzeit
                    visu_acl = rw
                    cache = True
                    enforce_updates  = yes
                    value = 9:00
                [[[[max_time]]]]
                    type = str
                    name = Nachtendzeit
                    visu_acl = rw
                    cache = True
                    enforce_updates  = yes   
                    value = 16:00
    
        [[default]]
            type=foo
            as_item_brightness = Wetterstation.HelligkeitMaximal
            as_item_brightness_east = Wetterstation.HelligkeitOsten
            as_item_brightness_south = Wetterstation.HelligkeitSueden
            as_item_brightness_west = Wetterstation.HelligkeitWesten
            as_item_temperature = Wetterstation.TemperaturDach
            as_item_wind = Wetterstation.Windgeschwindigkeit.kmh
                    
            [[[night]]]
                type = foo
                name = Nacht
                as_set_height = value:100
                as_set_lamella = value:100
                [[[[enter]]]]
                    type = foo
                    as_max_brightness = item:autoblind.settings.night.max_brightness
                    #as_min_time = 9:00
                    as_min_time = item:autoblind.settings.night.min_time
                    as_max_time = item:autoblind.settings.night.max_time
                    as_negate_time = True                        
                   
            [[[day]]]
                type = foo
                name = Tag (statisch)
                as_set_height = value:0
                as_set_lamella = value:0
                [[[[enter]]]]
                    type = foo
                    as_min_brightness = 300
                    as_min_time = 6:00
                    as_max_time = 22:00
                    
            [[[suntrack_south]]]
                type = foo
                name = Sonnenstand
                as_set_height = value:100
                as_set_lamella = eval:autoblind_eval.sun_tracking()
                [[[[enter_east]]]]
                    type = foo
                    as_min_brightness_east = 77000
                    as_min_sun_altitude = 20
                    as_min_sun_azimut = 95
                    as_max_sun_azimut = 140
                    as_min_temperature = 24
                [[[[enter_south]]]]
                    type = foo
                    as_min_brightness_south = 77000
                    as_min_sun_altitude = 20
                    as_min_sun_azimut = 95
                    as_max_sun_azimut = 240
                    as_min_temperature = 24
                [[[[leave_toodark]]]]
                        as_max_brightness = 60000
                        as_min_delay = 1200
                        type = foo
                [[[[leave_sun_azimut]]]]
                        as_min_sun_azimut = 95
                        as_max_sun_azimut = 240
                        as_negate_sun_azimut = True
                        type = foo
                [[[[leave_temperature]]]]
                        as_max_temperature = 22
                        as_min_delay = 1200
                        type = foo
    Und weiter unten gibt es dann das Jalousieitem, zB so:

    Code:
    ['sueden']
    type = foo
        [['j7_stiegenhaus']]
        type = foo
        cycle = 600
        as_plugin = active
        name='Sueden Jalousie Stiegenhaus'
        as_lock_item =  sueden.j7_stiegenhaus.autostate_lock
        as_laststate_item_id = sueden.j7_stiegenhaus.autostate_id
        as_laststate_item_name = sueden.j7_stiegenhaus.autostate_name
        as_item_height = sueden.j7_stiegenhaus.hoehe
        as_item_lamella = sueden.j7_stiegenhaus.lamellen
        as_suspend_watch = sueden.j7_stiegenhaus.lz | sueden.j7_stiegenhaus.kz | jalousien.ost.kz | jalousien.ost.lz 
        eval_trigger=jalousien.automatik_lock
        as_suspend_item = sueden.j7_stiegenhaus.autostate_suspend
                [[[autostate_lock]]]
                    type = bool
                    knx_dpt = 1
                    knx_send = 4/5/13
                    knx_status = 4/5/14
                    knx_init = 4/5/13
                    knx_listen = 4/5/0
                    visu_acl = rw
                    cache = on
                    enforce_updates = true
                [[[autostate_id]]]
                    type = str
                    visu_acl = r
                    cache = on
                [[[autostate_name]]]
                    type = str
                    visu_acl = r
                [[[autostate_suspend]]]
                    type = bool
                    visu_acl = r
                [[[night]]]
                    type = foo
                    as_use = autoblind.default.night
                [[[suntrack]]]
                    type = foo
                    as_use = autoblind.default.suntrack_south
                [[[day]]]
                    type = foo
                    as_use = autoblind.default.day

    Einen Kommentar schreiben:


  • schloessl
    antwortet
    Hallo mumpf,
    Hallo Onkelandy,

    Ich war über das Wocheende unterwegs, deshalb der späte Dank für Eure Hilfen!

    Mir als Frischling mit diesem Plugin geben die letzten beiden Posts (224 + 224) noch etwas Rätsel auf.
    Ich hatte mir vorgenommen die Verschattung aus den ersten Posts (#15) einmal genauer zu studieren. Mit der Lösung arbeitet wohl Onkelanfy.
    Waldemar weist auf die neue Lösung hin..

    Aber ..
    eval:autoblind_eval.SunTracking(). ??

    In meinen Anpassungen, streng nach Vorlage, kann ich die vorgenannte Anweisung nicht zuordnen. Anbei meine .iconf in Auszügen

    Wo muss ich bitte obige Zeile einbinden? Oder ist es die letzte Zeile meines Codings in anderer Syntax?

    Wo steckt die Lösung Subtracking?

    Danke für die Hilfe vorab"

    Wolfgang


    Code:
    [autoblind]
        [[default]]            
            as_item_temperature = aussen.mdt.tempsun
            [[[night]]]
            ..
            [[[dawn]]]
            ..    
            [[[dusk]]]
            ..
            [[[suntracking]]]
                name =  "Tag (suntracking)"
                [[[[enter]]]]
                    as_min_brightness = 20000
                    as_min_sun_azimut = 120
                    as_max_sun_azimut = 240
                    as_min_sun_altitude = 20
                    as_min_temperature = 20
                 [[[[leave_todark]]]]
                    as_max_brightness = 20000
                    as_min_delay = 1200
                 [[[[leave_azimut]]]]
                    as_min_sun_azimut = 120
                    as_max_sun_azimut = 240
                    as_negate_sun_azimut = True                 
            [[[day]]]
    
            
    [jalegessfenster]
            type = bool
            name = EG_Ess_Fenster
            as_plugin = active
            as_lock_item = eg.ess.schatt.auto_lock
            as_suspend_item = eg.ess.schatt.auto_suspend
    #        as_suspend_time = 7200
            as_suspend_time = 1800
            as_suspend_watch = eg.ess.schatt.move | eg.ess.schatt.stop
            as_laststate_item_id = eg.ess.schatt.auto_laststate_id
            as_laststate_item_name = eg.ess.schatt.auto_laststate_name        
            as_item_height = eg.ess.schatt.pos
            as_item_lamella = eg.ess.schatt.lamelle
            as_item_presence = eg.anwesend
            as_item_brightness = aussen.mdt.luxsued
            [[night]]
                as_use = autoblind.default.night
                [[[enter_presence]]]
                    as_max_brightness = 750
                    as_min_time = 07:00
                    as_max_time = 19:00
                    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

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Onkelandy: Kann es sein, dass Du eine alte Version von dem Plugin verwendest? "auto" gibt es schon länger nicht mehr, das ist jetzt mit eval (flexibler) gelöst. Das Äquivalent für das frühere "auto" ist jetzt eval:autoblind_eval.SunTracking().

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Schloessl, ich vermute, du hast inzwischen die Möglichkeit, bei den lamella als Wert "auto" anzugeben, selbst entdeckt..? Das macht nämlich die Sonnenstandsberechnung und winkelt die Lamellen so ab, wie es eben Sinn macht.

    Einen Kommentar schreiben:


  • hhhc
    antwortet
    Zitat von mumpf Beitrag anzeigen
    In Deinem Beispiel würdest Du dort
    Code:
    eval = or
    eval_trigger = <tag-nacht-lock-item> | <gästezimmer-lock-item>
    eingeben und so die lokale Sperre die globale überschreiben lassen.
    Ich habe das jetzt über 1 zusätzliches Item pro Raffstore sowie das Zentral-Item gelöst. Also eben über die 18 zusätzlichen...

    Code:
                    [[[[[auto_lock]]]]]
                        type = bool
                        visu_acl = rw
                        cache = on
                        eval = or
                        eval_trigger = EG.gaestebad.raffstore.fenster.manual_lock | Raffstore.automatik
                    [[[[[manual_lock]]]]]
                        type = bool
                        visu_acl = rw
                        cache = on
    Somit habe ich maximale Flexibilität ohne Änderung am Plugin.

    EDIT: Wobei ich bei auto_lock wohl kein visu_acl = rw mehr bräuchte...

    Einen Kommentar schreiben:


  • offline
    antwortet
    Hi zusammen,

    da das Plugin soweit gut läuft habe ich die aktuelle Version als Version 0.9.0 getaggt und in den master-Zweig gemerged.

    Grüße
    offline

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Zitat von hhhc Beitrag anzeigen
    Waldemar, ich gebe Dir recht. Das was Du schreibst IST Elementarwissen. Nur leider löst das nicht mein Problem.
    Hi,

    diesbezüglich sind wir uns wohl einig . Und Du musst zugeben, dass Du Dein Problem nicht so geschildert hast, dass man konkrete Lösungsvorschläge machen konnte...

    Der Punkt ist, dass das as_lock_item (welches auch immer das bei Dir ist) ein ganz normales Item ist. Damit kannst Du dann alles machen, was sh.py erlaubt. In Deinem Beispiel würdest Du dort
    Code:
    eval = or
    eval_trigger = <tag-nacht-lock-item> | <gästezimmer-lock-item>
    eingeben und so die lokale Sperre die globale überschreiben lassen. Alternativ würde mir noch einfallen, dass Du für das Gästezimmer einen Zustand (als erstes in der Liste) definierst, der keine as_set_* action hat und auf <gästezimmer-lock-item> reagiert. Dann würde die Automatik zwar technisch laufen, aber solange <gästezimmer-lock-item> gesetzt ist, immer in dem Zusand landen, der nichts verändert.

    Auf jeden Fall kann man das Lösen, ohne am Plugin was ändern zu müssen.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • hhhc
    antwortet
    Zitat von mumpf Beitrag anzeigen
    Hi,

    sorry, aber das ist wirklich Elementarwissen zu sh.py!
    Code:
    knx_listen = 1/1/1 | 2/2/2
    Dabei ist 1/1/1 eine GA, über die man das inaktiv schalten kann (z.B. lokal für diesen Raum) und 2/2/2 die globale, die an allen Items hängt.

    Gruß, Waldemar
    Waldemar, ich gebe Dir recht. Das was Du schreibst IST Elementarwissen. Nur leider löst das nicht mein Problem.

    Ich möchte die gesamte Logik nachts ausschalten, aber den Status einzelner Items nicht überschreiben. Hintergrund: Wir haben einen Tag-Nacht-Modus für unser Haus, mit dem auch die RaffstoreAutomatik geschaltet werden soll. Somit kann ich am WE mal länger schlafen und es ist einfach ein bisschen individueller und passt besser für uns. Wenn jetzt aber Besuch da ist, möchte ich die beiden Raffstoren im Gästezimmer ausschalten (unsere Eltern sind eher traditionell und lieben Taster drücken :-). Auch bei einer Aktivierung der Automatik durch den Tag-Modus sollen also die beiden dann nicht aktiviert werden.
    In offline's Logik (der Vorgänger) hatte ich da was separat zu eingebaut, würde aber den Code des Plugin ungern modifizieren.

    hhhc

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Das mit dem Ausschalten der Automatik habe ich über ein zusätzliches Item gelöst. Dieses kann ich dann sowohl per Schalter als auch per Visu aktivieren. Ist es aktiv, wird die Automatik gelockt (in älteren Versionen des Plugins war es anders rum!!)

    Code:
    [[jalousien]]
        [['automatik_lock']]
        type = bool
        visu_acl = rw
        enforce_updates = yes
        knx_dpt = 1
        cache = True
        knx_send = 4/5/0
        knx_status = 4/5/100
        knx_init = 4/5/0
        [[['zeitschalter']]]
                type = dict
                uzsu_item = jalousien.automatik_lock
                cache = True
                visu_acl = rw
    Und dann für jede Jalousie:
    Code:
    [[bad]]
        as_lock_item =  bad.autostate_lock
        eval_trigger=jalousien.automatik_lock    # Damit die Abfrage sofort durchgeführt wird, sobald der Lock aktiviert wurde
                [[[autostate_lock]]]
                    type = bool
                    visu_acl = rw
                    cache = on
                    knx_dpt = 1
                    knx_send = 4/5/1
                    knx_status = 4/5/2
                    knx_init = 4/5/1
                    knx_listen = 4/5/0 # hört also auf die Gruppenadresse des "General-Versperrers", ginge aber auch mit nur mit Items mittels eval und eval_trigger
                    enforce_updates = true
    Was mir deinem Beispiel noch aufgefallen ist.. von 38 Grad steht nix in deiner Config, nur von 20 Grad. Wie misst du denn überhaupt die Temperatur direkt an der Scheibe!??

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    sorry, aber das ist wirklich Elementarwissen zu sh.py!
    Code:
    knx_listen = 1/1/1 | 2/2/2
    Dabei ist 1/1/1 eine GA, über die man das inaktiv schalten kann (z.B. lokal für diesen Raum) und 2/2/2 die globale, die an allen Items hängt.

    Gruß, Waldemar

    Einen Kommentar schreiben:


  • hhhc
    antwortet
    Zitat von offline Beitrag anzeigen

    "2) Abschaltung der gesamten Logik mittels eines neuen Items, so dass ich nicht alle 18 Items deaktivieren muss (bei Besuch oder so)"

    Das habe ich bei mir so gelöst, dass ich eine GA habe, auf die alle "Aktiv"-Items zusätzlich hören.
    Hallo offline,

    könntest Du hier bitte mal ein kleines Bsp bringen? Brauche ich dazu ein 2. Aktiv-Item pro Raffstore?

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Du kannst bei allen as_set_* auch ein eval: als Wert nehmen und im eval Deine Formel hinterlegen.
    Ich habe bei mir an einer Stelle zum Beispiel:
    Code:
    as_set_pos = eval:min(int((-(sh.Aussen.Wetter.Sonne.Altitude())+100)/5)*5,65)
    Das passt, um meinen Rolladen in der Küche nachzuführen.

    Was für Deine Jalousie zu machen ist, kann ich natürlich nicht sagen.

    Gruß, Waldemar
    Zuletzt geändert von mumpf; 22.07.2015, 17:33.

    Einen Kommentar schreiben:


  • schloessl
    antwortet
    Danke Waldemar,

    ich hatte es befürchtet.

    Also, wenn der Einfallwinkel der Sonne sich ändert, kann ich nur konstante " height und lamella" übertragen, eine Winkelberechnung und Höhenkorrektur erfolgt nicht?
    Kann ich hier mehrere Bedingung einbringen, Sonnenwinkel1, -- Sonnenwinkel n mit den entsprechenden " height und lamella"
    Ich kämpfe ja erst 2 Tage mit den Möglichkeiten im Schweiße meine Angesichts

    Gruß Wolfgang

    Einen Kommentar schreiben:


  • mumpf
    antwortet
    Hi,

    nach einem ersten Blick kann ich nur sagen, dass mir beim Zustand "suntracking" die Aktion fehlt, die in dem Zustand ausgeführt werden soll. Machst Du ja bei den anderen Zuständen auch (z.B. bei Day setzt Du height = 0 und lamella = 100).
    Ausserdem muss as_item_presence eine Item-Referenz sein, keine Konstante (daher dieser Fehler im Log).

    Ich glaube, Du hast das Plugin noch nicht ganz verstanden: Es ist ein Zustandsautomat, der eine Liste von vorgegebenen Bedingungen überprüft und den Zustand einnimmt, der den jeweiligen Bedingungen entspricht. Immer wenn ein Zustand eingenommen werden kann, werden Aktionen ausgelöst. Was gemacht werden soll, musst Du sagen. Definiere mal ein passendes height und lamella, dann wird das was.

    Gruß, Waldemar

    Einen Kommentar schreiben:

Lädt...
X