Ankündigung

Einklappen

Sammelbestellung ETS6 Vollversionen aktiv!

Sammelbestellung für ETS6 Vollversionen (Prof., Home, Lite) mit 40% Rabatt aktiv! Infos im Forum!
Mehr anzeigen
Weniger anzeigen

Problem nach Update auf 2.308

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

  • enertegus
    antwortet
    Die Makros werden hierzu mit der Freigabe-Variable FREI parametriert.

    Die Freigabe wird folgende Betrachtungszeiträume unterteilt:
    • Tag-Modus: Sonnenaufgang bis Sonnenuntergang
    • Früh-Modus: Zeitraum nach 00:00h und vor Sonnenaufgang
    • Spätmodus: Nach Sonnenunteraufgang und nicht 0:00 Uhr

    Der Anwender betätigt eine Gruppenadresse „Anwesend“ '1/2/3'b01 (EIN==anwesend).
    Die Freigabe-Variable FREI soll abhängig von den folgenden Zuständen geschalten werden.

    Zustand 1:
    Beschreibung:
    Früh-Modus
    Ziel:
    Es soll kein Macro durchlaufen werden, unabhängig davon, ob 1/2/3'b01 auf EIN oder AUS steht.
    Damit muss FREI auf AUS gesetzt werden bzw. in diesem (AUS-) Zustand verharrren
    Zustand 2.
    Beschreibung:
    Tag-Modus
    Ziel:
    Wenn 1/2/3'b01 auf EIN steht, soll FREI auf EIN gesetzt werden, die Makros werden also aktiv, wenn 1/2/3'b01 auf AUS steht, soll FREI auf AUS gesetzt werden, die Makros werden deaktiviert.
    Zustand 3.
    Beschreibung:
    Spät-Modus
    Ziel:
    Wenn 1/2/3'b01 auf EIN steht, soll FREI auf EIN gesetzt werden, die Makros werden also aktiv, wenn 1/2/3'b01 auf AUS steht, soll FREI auf AUS gesetzt werden, die Makros werden deaktiviert.

    Wäre das so richtig verstanden?

    Einen Kommentar schreiben:


  • jjmargis
    antwortet
    verlangt als argument2 eine Zahl nämlich den delay
    Aha, das habe ich nun verstanden.
    Dann geht das also nicht so, wie ich mir das vorstelle.
    Mmm...

    Dann nehme ich mal das Angebot an...
    Ich würde vorschlagen, den eigenen Wunsch koordiniert aufzuschreiben. Du brauchst da ja eine komplette Zustandsmaschine. Dazu poste mal hier die verschiedenen Zustände:
    • Zustand1:
      Beschreibung:

      Die Sonne ist aufgegangen, dann wird die Freigabe erteilt.Der Anwender ist anwesend.
      Ziel:
      Freigabe soll wirksam werden ....
    • Zustand2:
      Beschreibung:
      ...
      Ziel
      ...
    und das für alle gewollten Zustände. Dann kann man das mal durchexerzieren.
    Ich würde das ins Handbuch aufnehmen.
    Zwei Betrachtungszeiträume:
    Tag-Modus: Sonnenaufgang bis Sonnenuntergang
    Nacht-Modus: Sonnenuntergang bis Sonnenaufgang

    Zustand 1.)
    - Zeitraum nach 00:00h und vor Sonnenaufgang
    (Also noch Nachtmodus)
    - Anwender ist anwesend, verlässt das Haus.
    - Betätigung des Button: Abwesend
    Ziel:
    Es sollen kein Macro für den Nachtmodus durchlaufen werden.
    Somit ist die Freigabe für "Abwesend" so lange zu verzögern, bis der Tagmodus erreicht wurde.

    Zustand 2.)
    - Zeitraum nach Sonnenaufgang bis Sonnenuntergang
    - Anwender ist anwesend, verlässt das Haus.
    - Betätigung des Button: Abwesend
    Ziel:
    Die Aktivierung soll ohne Verzögerung erfolgen.

    Zustand 3.)
    - Zeitraum nach Sonnenuntergang bis 00:00h
    (Also Nachmodus)
    - Anwender ist anwesend, verlässt das Haus.
    - Betätigung des Button: Abwesend
    Ziel:
    Die Aktivierung soll ohne Verzögerung erfolgen.
    Die Macros sollen entsprechend der Einstellung (Bsp. Macro nach Sonnenuntergang gedeckelt) ausgeführt werden.

    Zustand 4.)
    Sofern die Freigabe für die Abwesenheit einmal aktiviert wurde, ist sie solange aktiv, bis sie wieder deaktiviert wird.
    Somit laufen die Macros "nach Sonnenuntergang gedeckelt" und "nach Sonnenaufgang gedeckelt" ganz normal über mehrere Tage.

    Ich hoffe ich konnte das verständlich beschreiben.

    Viele Grüße
    Jens

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Zitat von jjmargis Beitrag anzeigen
    Richtig Bodo, die folgende Codezeile ist das Problem.

    Code:
    if (delay(Verzoegerung==EIN, [COLOR=Red](elevation()>= +1f32)[/COLOR])) then {write("Anwesenheit-8/1/1",EIN)} endif
    Als Ergebnis sagt mir das EibStudio:
    "Laufzeitfehler:
    ! Unerlaubter Argumenttyp in : >= -> 2-tes Argument von : >delay(Verzoegerung==EIN,elevation()>=+1f32)< !
    ID:40"

    :-(
    Hoi

    Sag' ich doch die ganze Zeit. Die Funktion delay(argument1,argument2) verlangt als argument2 eine Zahl nämlich den delay!

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von jjmargis Beitrag anzeigen
    Richtig Bodo, die folgende Codezeile ist das Problem.
    was soll der Code denn machen?

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von jjmargis Beitrag anzeigen
    Beispiel 1:
    Rückkehr am Abend = Deaktivierung der Freigabe
    Beispiel 2:
    Abwesenheit über mehrere Tage = die Freigabe sollte durchgängig aktiviert sein.
    Du willst es weit komplexer ...
    Ich würde vorschlagen, den eigenen Wunsch koordiniert aufzuschreiben. Du brauchst da ja eine komplette Zustandsmaschine. Dazu poste mal hier die verschiedenen Zustände:
    • Zustand1:
      Beschreibung:

      Die Sonne ist aufgegangen, dann wird die Freigabe erteilt.Der Anwender ist anwesend.
      Ziel:
      Freigabe soll wirksam werden ....
    • Zustand2:
      Beschreibung:
      ...
      Ziel
      ...

    und das für alle gewollten Zustände. Dann kann man das mal durchexerzieren.
    Ich würde das ins Handbuch aufnehmen.

    Einen Kommentar schreiben:


  • jjmargis
    antwortet
    Richtig Bodo, die folgende Codezeile ist das Problem.

    Code:
    if (delay(Verzoegerung==EIN, (elevation()>= +1f32))) then {write("Anwesenheit-8/1/1",EIN)} endif
    Als Ergebnis sagt mir das EibStudio:
    "Laufzeitfehler:
    ! Unerlaubter Argumenttyp in : >= -> 2-tes Argument von : >delay(Verzoegerung==EIN,elevation()>=+1f32)< !
    ID:40"

    :-(

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von jjmargis Beitrag anzeigen
    Allerdings gibt es da immer eine Fehlermeldung.
    Das mit dem elevation passt irgendwie nicht.
    Ich versteh den Code nicht.

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Hoi

    1. Du hast eine Fehlermeldung!
    2. Dein Code ist Fehlerhaft (da wo rot)

    Einen Kommentar schreiben:


  • jjmargis
    antwortet
    Hi Bodo,

    nein, nicht wirklich.
    Ich habe das noch drin, könnte man auch weglassen.
    Ist nur eine kleine Verzögerung wenn der Button auf AUS geht.
    Ist für mein Problem nicht relevant.
    Entscheidend ist für mich irgendwie die verzögerte Aktivierung beim
    bei der EIN Betätigung.
    Allerdings ist das nur der erste Schritt im Versuch die Verzögerung bis nach dem Sonnenaufgang zu haben.
    Der zweite Schritt wäre dann, dass die Verzögerung nur bei einer Betätigung zwischen 00:00h und Sonnenaufgang erfolgt.

    Einen Kommentar schreiben:


  • Bodo
    antwortet
    Zitat von jjmargis Beitrag anzeigen

    Code:
    if (delay(Verzoegerung==EIN[COLOR=Red],(elevation()>= +1f32)[/COLOR]) then ...
    if (delay(Verzoegerung==AUS[COLOR=Black],100u64)[/COLOR]) then ...
    Hoi

    Der Delay u64 beim ersten mal ist ein Vergleich?

    Einen Kommentar schreiben:


  • jjmargis
    antwortet
    ...ich habe nochmal folgendes versucht.

    Code:
    if button(4)==1 then {Verzoegerung=!Verzoegerung} endif
    if (delay(Verzoegerung==EIN,(elevation()>= +1f32)) then {write("Anwesenheit-8/1/1",EIN)} endif
    if (delay(Verzoegerung==AUS,100u64)) then {write("Anwesenheit-8/1/1",AUS)} endif
    if Verzoegerung then display(4,$Abwesend$,ABSENT,DARKRED,BLINKBLUE) else display(4,$Anwesend$,PRESENT,ACTIVE,GREEN) endif
    Allerdings gibt es da immer eine Fehlermeldung.
    Das mit dem elevation passt irgendwie nicht.
    Kann evtl. jemand helfen?

    Einen Kommentar schreiben:


  • jjmargis
    antwortet
    Danke Michael,

    allerdings...
    Wenn um 00:00h zurückgesetzt wird, dann würde das Macro "bei Sonnenaufgang" doch aber nicht funktionieren, wenn die Abwesenheit deaktiviert ist.
    Dann würde das über mehrere Tage dann nicht laufen.
    Oder liege ich hier falsch?

    Evtl. habe ich mich nicht korrekt ausgedrückt.


    Aktivierung verzögert bis nach Sonnenaufgang, wenn zwischen 00:00h und Sonnenaufgang die Freigabe gesetzt wird.

    Beispiel 1:
    Rückkehr am Abend = Deaktivierung der Freigabe
    Beispiel 2:
    Abwesenheit über mehrere Tage = die Freigabe sollte durchgängig aktiviert sein.

    Somit sollte nur ein Delay bei der Aktivierung erfolgen.
    ;-)

    Einen Kommentar schreiben:


  • enertegus
    antwortet
    Zitat von jjmargis Beitrag anzeigen
    I:
    Verzögerung= Ein, wenn 00:00h bis Sonnenaufgang + 5 Minuten.
    [highlight=epc]
    if button(4)==1 then Freigabe=!Freigabe endif
    // Um 0:00 Uhr zurücksetzen
    if Freigabe==EIN and htime(0,0,0) then write("Anwesenheit-1/1/1",AUS) endif
    // 5 Minuten nach Sonnenaufgang wieder EIN
    if Freigabe==EIN and after(sun(),300000u64) then write("Anwesenheit-1/1/1",EIN) endif
    // Wenn die Freigabe aus ist...
    if Freigabe==AUS then write("Anwesenheit-1/1/1",AUS) endif

    [/highlight]
    und dann wie vorher mit den Makros arbeiten.

    Einen Kommentar schreiben:


  • jjmargis
    antwortet
    Ich habe mal folgende Idee umgesetzt, die allerdings einen festen Delay Zeitraum definiert:

    Code:
    if button(4)==1 then {Verzoegerung=!Verzoegerung} endif
    if (delay(Verzoegerung==EIN,100u64)) then {write("Anwesenheit-8/1/1",EIN)} endif
    if (delay(Verzoegerung==AUS,100u64)) then {write("Anwesenheit-8/1/1",AUS)} endif
    if Verzoegerung then display(4,$Abwesend$,ABSENT,DARKRED,BLINKBLUE) else display(4,$Anwesend$,PRESENT,ACTIVE,GREEN) endif
    Jetzt frage ich mich wie folgende Idee hierzu aussehen könnte:
    Verzögerung= Ein, wenn 00:00h bis Sonnenaufgang + 5 Minuten.

    Damit würde dann die Abwesenheit erst aktiv werden, wenn das Macro für "nach Sonneaufgang" greift. Dann würden die Rollos nicht mehr runterfahren, sondern erst dann bei Sonnenuntergang.

    Geht sowas?

    Einen Kommentar schreiben:


  • jjmargis
    antwortet
    JA, das soll das Makro doch auch machen, oder was versteh ich da nicht?
    Ja, da hast du Recht.
    Lag also an der Version.

    Da sollte es egal sein, wann Freigabe betätigt wird und der Schaltbefehl in jedem Fall sofort ausgelöst werden, alsbald der Sonnenuntergang oder die "Deckel-Zeit" überschritten wird.
    Wenn die Freigabe erfolgt, wird der Schaltbefehl sofort ausgeführt, das verstehe ich.
    Jedoch passiert dann vor Sonnenaufgang folgendes:
    - Früh aufstehen = Rollos hochfahren
    - Haus verlassen (vor Sonnenaufgang) = Abwesenheit aktivieren = Rollos
    fahren runter.
    Das würde ich gerne verhindern.
    ;-)

    Einen Kommentar schreiben:

Lädt...
X