Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Beschattung

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

  • offline
    antwortet
    Hallo ivande

    ich habe da eine Vermutung, wie ich das Problem beheben kann ... ich bin aber leider über's Wochenende unterwegs, so dass ich erst nächste Woche dazu kommen werde, das einzubauen. Wenn du Python-technisch bewandert bist, kann ich dir aber auch gerne sagen, wo du testweise mal was einbauen kannst ...

    Grüße
    offline

    Einen Kommentar schreiben:


  • ivande
    antwortet
    Hallo offline,

    hab ich mich zufrüh gefreut. die Sache funktioniert nur im Debug-Modus:

    wenn ich das "as_manual_exclude = Init:*" rausnehme, sind beim Starten vom shNG alle Raffstoren im Suspend-Modus. Starte ich shNG im Debug-Modus (--d), dann ist nach dem Start kein Raffstore im suspend? hmm?

    Gruß Ivan

    Einen Kommentar schreiben:


  • ivande
    antwortet

    Die Ursache war: "as_manual_exclude = Init:*" war noch im Item, owohl ich es gelöscht hatte, (Hab eine Backup-Datei zurückgespielt, und da war es noch enthalten)

    PHP-Code:
    [[[[[[manuell]]]]]]    
      
    type bool
      name 
    Manuelle Bedienung
      as_manual_logitem 
    Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell
      as_manual_invert 
    True    
      eval_trigger 
    Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell_positionen Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell_taster
      
    # as_manual_exclude = Init:* # Init muss raus, sonst will der suspend-Modus nicht bei einer gesendeten "0" nach Neustart 

    Danke offline, erst durch Deine Antwort ist mir der Baum im Wald aufgefallen
    Zuletzt geändert von ivande; 24.08.2016, 20:49. Grund: Formatierung

    Einen Kommentar schreiben:


  • offline
    antwortet
    Hi ivande

    nach dem Log, das du angehängt hast, sollte er aber die Statusermittlung nicht triggern. Er mekt, dass der aktuelle Wert des Manuell-Items "False" ist, dann ermittelt er "Init" als Auslöser der Änderung. "Init" steht auf der Exclude-Liste also behält er den Wert "False" für das Manuell-Item bei. Da "enforce_updates" nicht für das Manuell-Item nicht gesetzt ist, sollte das nicht zum Triggern führen. Wenn doch müsste ich mir das SHNG-Coding an der Stelle nochmal ansehen, das wäre nämlich nicht richtig.

    Grüße
    offline

    Einen Kommentar schreiben:


  • ivande
    antwortet
    Ist mir schon länger aufgefallen: Damit das manuell Item nach den Neustart von shNG in den Suspend-Status geht, muss ich immer erst eine "1" senden. Also Raffstore oder Lamelle "Runter". Wenn ich erst auf Rauf klicke geht es nicht in den Suspend.

    Das Problem hab ich auch schon hier gefunden: siehe Post 478

    PHP-Code:
        [[SuspendNight]]
            
    #$order = 20
            
    type foo
            name 
    Automatik für eine Zeit ausgesetzt
            enforce_updates 
    True
            as_name 
    = eval: autoblind_eval.insert_suspend_time('..suspend'suspend_text='Ausgesetzt bis %X')
            
    as_set_suspend True
            
    [[[enter_manuell]]]
                
    #$order = 2
                
    as_max_sun_altitude 20
                as_max_Daemmerung 
    200
                as_value_trigger_source 
    = eval: autoblind_eval.get_relative_itemid('..manuell')
            [[[
    enter_stay]]]
                
    #$order = 3
                
    as_value_laststate = var:current.state_id
                as_agemax_manuell 
    = var:item.suspend_time
                as_value_suspend 
    True 
    PHP-Code:
            [[[[[[manuell_positionen]]]]]]
                            
    type bool
                            name 
    Manuelle Bedienung Positionen
                            as_manual_include 
    Visu:*
                            
    as_manual_invert True
                            eval_trigger 
    Dg.Eltern.Jalousie.Fenster.Position Dg.Eltern.Jalousie.Fenster.Lamellenposition
                        
    [[[[[[manuell_taster]]]]]]
                            
    type bool
                            name 
    Manuelle Bedienung über Tasten
                            
    eval = not sh.Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell_taster()
                            
    as_manual_invert True
                            eval_trigger 
    Dg.Eltern.Jalousie.Fenster.Auf_ab Dg.Eltern.Jalousie.Fenster.Lamellenverstellung_stop Dg.Eltern.Jalousie.Fenster.ManuellKNX
                        
    [[[[[[manuell]]]]]]
                            
    type bool
                            name 
    Manuelle Bedienung
                            as_manual_logitem 
    Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell
                            as_manual_invert 
    True
                            eval_trigger 
    Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell_positionen Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell_taster 



    2016-08-23 23:49:26.924024 running for item 'Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell' source 'Eval' caller 'Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell_tast er'
    2016-08-23 23:49:26.924075 Current value of item Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell is False
    2016-08-23 23:49:26.924121 get_original_caller(Eval, Dg.Eltern.Jalousie.Fenster.AutoBlind.manuell_taste r): changed by Eval, Dg.Eltern.Jalousie.Fenster.Lamellenverstellung_sto p
    2016-08-23 23:49:26.924165 get_original_caller(Eval, Dg.Eltern.Jalousie.Fenster.Lamellenverstellung_sto p): changed by Init, None
    2016-08-23 23:49:26.924200 get_original_caller: returning Init, None
    2016-08-23 23:49:26.924234 original trigger by caller 'Init' source 'None'
    2016-08-23 23:49:26.924270 checking exclude values: ['Init:*']
    2016-08-23 23:49:26.924306 Init:*: matching. Writing value False
    hat das Problem sonst noch jemand? da ich zurzeit öfters sh neu starte (Testen von shNG, svTNG, ...) ist es unangenehm wenn der Suspend-Modus nicht immer aktiviert wird, wenn er sollte..

    Gruß Ivan
    Zuletzt geändert von ivande; 23.08.2016, 22:52.

    Einen Kommentar schreiben:


  • offline
    antwortet
    Sorry 5 Sekunden natürlich. Mich macht es nur stutzig, dass es fast auf die 1/100 Sekunde genau 5 Sekunden sind. Aber auch wenn's direkt vom Aktor kommt, sollte im Log zum manuell-Item erkennbar sein, wie der Wert ermittelt wurde

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Hi! Das sind 5 Sekunden und wäre nach meiner Interpretation die Zeit, die der Aktor gebraucht hat, um den aktuellen Lamellenwert zurück zu melden, meinst nicht?

    Einen Kommentar schreiben:


  • offline
    antwortet
    Das sollte in der Tat nicht sein, genau sowas sollte ja über as_manual_exclude ausgeschlossen sein. Was mich dabei aber wundert ist, dass die zweite Statusermittlung (2016-08-11 11:14:04.830882) ziemlich exakt 5 Minuten nach dem Ende der ersten Neuermittlung (2016-08-11 11:13:59.801515) passiert. Das ist entweder ein extremer Zufall, oder es deutet darauf hin, das as_manual_eval eine andere Quelle für die Änderung ermittelt als die Prüfungen im Plugin. Das sollte dann im Log zum manuell-Item sichtbar sein, dass du nun aktiviert hast.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Hi offline
    Das mit dem manual_logitem hab ich jetzt bei manchen Jalousien aktiviert, aber ich konnte das Problem partout aktuell nicht mehr nachbilden. Nichts desto trotz tauchte es bei mir in den letzten Wochen ab und an auf.

    Eine Jalousie ist im Sonnenstand-Modus. Ich beende SmarthomeNG und starte es dann wieder. Direkt nach dem Start geht die Jalousie brav wieder in den Sonnenstandmodus zurück, allerdings wird wohl durch das leichte Ändern der Lamellen das Manuell-Item getriggert. Und jetzt kommt's - obwohl ich den KNX Aktor (1.1.4) aus dem Manuell Item ausgeschlossen habe, wechselt der Zustand in "Suspend".

    Ich weiß, dass es das Problem schon mal gab und du da einen Fix eingebaut hast. Offenbar greift dieser Fix auch meistens, aber offenbar nicht immer.. Mehr kann ich dazu leider auch nicht sagen - vielleicht passiert das ja noch irgendwann wieder mit aktiviertem manual_logitem, dann kann ich mehr berichten. Vielleicht fällt dir aber gleich ein, wo damals das Problem lag

    Einen Kommentar schreiben:


  • offline
    antwortet
    Hi Onkelandy

    kannst du mir nochmal kurz sagen, was das Problem ist? Ich sehe vermutlich den Wald vor lauter Bäumen nicht.

    In deiner Konfiguration des Manuell-Items kannst du die Zeile "as_manual_invert = ..." rausnehmen. Die brauchst du nur, wenn weder as_manual_exclude noch as_manual_include angegeben sind.
    Wenn du ein Problem bei der Auswertung des Manuell-Items vermutest kannst du in der Konfiguration dieses Items das Attribut
    Code:
    as_manual_logitem = <Vollständige Item-Id>
    angeben. Dadurch wird das erweiterte Logging des Plugins für die Auswertung von as_manual_exclude/_include aktiviert. Du bekommst dann eine weitere Logfile, deren Namen aus dem im Attribut angegebenen Item zusammengesetzt wird. Daher bietet es sich an, bei diesem Attribut einfach nochmal den Namen des Manuell-Items anzugeben.

    Grüße
    offline

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    offline

    Jetzt ist der Fehler doch schon ab und zu aufgetaucht und zwar direkt nach einem Neustart. Ich gehe daher davon aus, dass hier bei der exclude-Routine zu Beginn etwas nicht stimmt. Danach wohl schon. Habe gerade den neuesten develop Release gezogen..

    Hier das Log
    Code:
    2016-08-11 11:13:59.451195 Update state of item jalousien.og.osten_stiegenhaus.automatik.rules ============
    2016-08-11 11:13:59.452119 Update triggered by Startup Delay (item=jalousien.og.osten_stiegenhaus.automatik.rules source=None dest=None)
    ...
    2016-08-11 11:13:59.520768 State can be entered
    2016-08-11 11:13:59.521335 Staying at jalousien.og.osten_stiegenhaus.automatik.rules.suntrack ('Sonnenstand')
    2016-08-11 11:13:59.522016     Action 'height': Set 'jalousien.og.osten_stiegenhaus.hoehe' to '100'
    2016-08-11 11:13:59.773399     Action 'suspend_end': Set 'jalousien.og.osten_stiegenhaus.automatik.autostate_suspend_end' to ''
    2016-08-11 11:13:59.783361     Action 'suntracking': Set 'jalousien.autoblind.settings.suntracking' to 'True'
    2016-08-11 11:13:59.793325     Action 'suspend': Set 'jalousien.og.osten_stiegenhaus.automatik.suspend' to 'False'
    2016-08-11 11:13:59.795813     Executing method 'SunTracking()'
    2016-08-11 11:13:59.797522         Current sun altitude is 47.70685644673391°
    2016-08-11 11:13:59.800413         Blinds at right angle to the sun at 42.29314355326609°
    2016-08-11 11:13:59.801515     Action 'lamella': Set 'jalousien.og.osten_stiegenhaus.lamellen' to '42.29314355326609'
    2016-08-11 11:14:04.830882 Update state of item jalousien.og.osten_stiegenhaus.automatik.rules ============
    2016-08-11 11:14:04.832095 Update triggered by Eval (item=jalousien.og.osten_stiegenhaus.automatik.rules source=jalousien.og.osten_stiegenhaus.automatik.manuell dest=None)
    2016-08-11 11:14:04.833678 Eval initially triggered by KNX (item=jalousien.og.osten_stiegenhaus.lamellen source=1.1.4)
    2016-08-11 11:14:04.835956 Executing method 'get_relative_itemvalue(..settings.suspendduration)'
    2016-08-11 11:14:04.837373 Last state: jalousien.og.osten_stiegenhaus.automatik.rules.suntrack ('Sonnenstand')
    2016-08-11 11:14:04.838128 Check if state 'jalousien.og.osten_stiegenhaus.automatik.rules.suntrack' ('Sonnenstand') can be left:
    2016-08-11 11:14:04.838780     No condition sets defined -> matching
    2016-08-11 11:14:04.839341 State can be left
    ...
    2016-08-11 11:14:04.881408 Check if state 'jalousien.og.osten_stiegenhaus.automatik.rules.suspend' ('Ausgesetzt') can be entered:
    2016-08-11 11:14:04.882047     Check condition set 'enter_manuell':
    2016-08-11 11:14:04.883235         Executing method 'get_relative_itemid(..manuell)'
    2016-08-11 11:14:04.884511         Condition 'trigger_source': value=jalousien.og.osten_stiegenhaus.automatik.manuell negate=False current=jalousien.og.osten_stiegenhaus.automatik.manuell
    2016-08-11 11:14:04.885217             OK -> matching
    2016-08-11 11:14:04.885860         Age of 'trigger_source': No limits given
    2016-08-11 11:14:04.886438 State can be entered
    2016-08-11 11:14:04.887046 Changing to jalousien.og.osten_stiegenhaus.automatik.rules.suspend ('Ausgesetzt')
    2016-08-11 11:14:05.046132     Action 'suspend': Set 'jalousien.og.osten_stiegenhaus.automatik.suspend' to 'True'
    2016-08-11 11:14:05.050667     Executing method 'insert_suspend_time(..suspend, %X)'
    2016-08-11 11:14:05.053468         Suspend time is 14400
    2016-08-11 11:14:05.056803         Suspend item is jalousien.og.osten_stiegenhaus.automatik.suspend
    2016-08-11 11:14:05.060221         Current suspend age: 0.011843
    2016-08-11 11:14:05.061268         Remaining suspend time: 14399.988157
    2016-08-11 11:14:05.064902         Suspend finished at 2016-08-11 15:14:05.051550+02:00
    2016-08-11 11:14:05.067331     Action 'suspend_end': Set 'jalousien.og.osten_stiegenhaus.automatik.autostate_suspend_end' to '15:14:05'
    Das Item:
    Code:
                    [[[[['manuell']]]]]
                        type = bool
                        name = Manuelle Bedienung
                        as_manual_invert = True
                        as_manual_exclude = Database:* | KNX:1.1.4
                        eval_trigger = jalousien.og.osten_stiegenhaus.lz | jalousien.og.osten_stiegenhaus.kz | jalousien.og.osten_stiegenhaus.hoehe | jalousien.og.osten_stiegenhaus.lamellen | jalousien.og.szenen | jalousien.alle | jalousien.og.osten.lz | jalousien.og.osten.kz
    Bei einer anderen Jalousie, die exakt gleich konfiguriert ist, gab es das Problem nicht..
    Code:
    2016-08-11 11:14:01.407966 Update state of item jalousien.og.osten_wohnen.automatik.rules =================
    2016-08-11 11:14:01.409316 Update triggered by Eval (item=jalousien.og.osten_wohnen.automatik.rules source=jalousien.og.osten_wohnen.automatik.manuell dest=None)
    2016-08-11 11:14:01.411043 Eval initially triggered by AutoBlind Plugin (item=jalousien.og.osten_wohnen.lamellen source=None)
    2016-08-11 11:14:01.412041 Ignoring changes from AutoBlind Plugin
    2016-08-11 11:14:01.466032 Update state of item jalousien.og.osten_wohnen.automatik.rules =================
    2016-08-11 11:14:01.467073 Update triggered by Eval (item=jalousien.og.osten_wohnen.automatik.rules source=jalousien.og.osten_wohnen.automatik.manuell dest=None)
    2016-08-11 11:14:01.468559 Eval initially triggered by AutoBlind Plugin (item=jalousien.og.osten_wohnen.lamellen source=None)
    2016-08-11 11:14:01.469471 Ignoring changes from AutoBlind Plugin
    2016-08-11 11:15:56.250934 Update state of item jalousien.og.osten_wohnen.automatik.rules =================
    2016-08-11 11:15:56.258389 Update triggered by Eval (item=jalousien.og.osten_wohnen.automatik.rules source=jalousien.autoblind.jalousietrigger dest=None)
    2016-08-11 11:15:56.265316 Eval initially triggered by Scheduler (item=jalousien.autoblind.jalousietrigger source=None)
    Zuletzt geändert von Onkelandy; 11.08.2016, 15:38.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    offline vielen Dank für die Antworten. Menno, da hab ich teils die Doku zu wenig genau gecheckt Das mit dem SmartPlugin ist schon mal top, mal sehen, ob das dann funzt. Und ja, die Sonderlogging-Geschichte funktioniert derzeit eh prima wie sie ist.

    Das mit der eigenen Eval-Routine habe ich eh schon testhalber umgesetzt. Mir ist noch nicht ganz klar, wie ich das am besten implementiere, sodass das Ganze unabhängig von deinem Plugin funzt, aber da werd ich schon drauf kommen Eigentlich wäre es generell cool, einfach ein include und exclude in jedes beliebige Item schreiben zu können.

    Einen Kommentar schreiben:


  • offline
    antwortet
    So, ich hoffe dass ich zu allen relevanten Themen, die wärend meines Urlaubs gepostet wurden, nun meinen Senf dazu gegeben habe. Würstchen die meinen, sie hätten ihren Senf noch nicht abbekommen können sich gerne nochmal melden ;-))

    Grüße
    offline

    Einen Kommentar schreiben:


  • offline
    antwortet
    Hi @Onkelandy
    Zitat von Onkelandy Beitrag anzeigen
    Vielleicht wärs noch möglich, auf die neue logging-Option von SmarthomeNG einzugehen... das wäre cool:
    self.logger = logging.getLogger(__name__) https://knx-user-forum.de/forum/supp...konfigurierbar
    Für das Standard-Logging des Plugins allgemein habe ich das umgesetzt. Push auf GitHub (Develop-Branch) ist erfolgt.
    Für das erweiterte Logging macht das aber in meinen Augen derzeit keinen Sinn. Ich habe keine Möglichkeit gefunden ie Logger so zu definieren, dass jeder Logger in eine eigene Datei schreibt (außer für jedes Autoblind-Item einen eigenen Handler in der YAML-Datei zu definieren ...).

    Grüße
    offline
    Zuletzt geändert von offline; 09.08.2016, 19:46.

    Einen Kommentar schreiben:


  • offline
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    offline
    Noch in kurze Frage zu einem Feature, das es vermutlich nicht gibt.. Ist es möglich, bei einzelnen Bedingungen auch eine ODER Abfrage zu machen? Mit eval wird das vermutlich nicht gehen oder doch?

    Als Beispiel:
    Man hat eine Bedingungsgruppe mit sagen wir 10 verschiedenen Bedingungen. Eine davon kann aber beispielsweise 3, 4 unterschiedliche Werte aufweisen, um in dn entsprechenden Zustand zu kommen. Jetzt wäre es deutlich übersichtlicher, wenn man für diese eine Bedingung sowas angeben könnte anstatt die ganze Wurst 4 Mal hinzuschreiben und abzuändern:
    Code:
    [COLOR=#FF0000]as_value_modus = 1 | 4 | 6 | 7[/COLOR]
    Doch .. genau das gibt's schon (und zwar genauso wie du es oben geschrieben hast). Siehe https://github.com/i-am-offline/smar...estimmter-wert

    Grüße
    offline

    Einen Kommentar schreiben:

Lädt...
X