Ankündigung

Einklappen
Keine Ankündigung bisher.

Rollläden - Automatik für Morgens

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

    Rollläden - Automatik für Morgens

    Hallo zusammen

    Ich bin schon bald am verzweifeln und hoffe nun bei euch auf Hilfe... wurde ja bisher nie enttäuscht.

    Ich habe die folgende Logik implementiert:
    if sun()==EIN and "Automatik Morgens - Buero-3/7/0"==EIN then write("Buero auf/ab-3/0/0", AUS) endif

    Die Gruppenadresse 3/7/0 steht auf AUS (habe ich mehrfach kontrolliert) und dennoch fahren die Rollläden am Morgen früh hoch, sobald die Sonne aufgeht.....

    Könnt ihr mir vielleicht einen Hinweis geben? Muss ich die else "Schleife" auch noch schreiben? Aber wieso...

    Danke für eure Hilfe!

    #2
    Hoi

    Versuch mal:
    [highlight=epc]
    if sun() and "Automatik Morgens - Buero-3/7/0" then write("Buero auf/ab-3/0/0", AUS) endif
    [/highlight]
    Grüsse Bodo
    Fragen gehören ins Forum, und nicht in mein Postfach;
    EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

    Kommentar


      #3
      Hallo Bodo

      Funktioniert leider nicht....

      (gut ich habe jetzt nicht gewartet, bis es die Sonne unter und wieder aufgeht)

      Habe den EibPC aber neu gestartet (vorher manuell die Läden runtergefahren) - Effekt: Läden gehen auch in jenen Räumen wieder hoch, wo die Automatik auf AUS steht (die genannte Gruppenadresse)

      Ich habe jetzt noch was ausprobiert. Wenn ich diesen Code verwende:
      if sun() and "Automatik Morgens - Andreas-3/7/2"==EIN then write("Andreas auf/ab-3/0/2", AUS) else vergisses=vergisses+1 endif

      dann gehen wohl die Läden beim Systemart hoch als auch vergisses wird um +1 erhöht... nun verstehe ich nur noch Bahnhof....

      Hast du noch einen Tip?

      Jedenfalls danke für deine Bemühungen.

      Kommentar


        #4
        Zwischen "if sun() then ..." und "if sun()==EIN then ..." ist kein Unterschied.

        Ich würde der Sache wie folgt auf den Grund gehen.

        [highlight=epc]
        // Während Systemstart andere Prozesse verzögern
        Init = AUS
        if after(systemstart(),5000u64) then \\
        Init = EIN \\
        endif

        // Definition der Freigabebedingung für Rolläden
        FreigabeRolladen = AUS
        if Init==EIN and sun()==EIN and "Automatik Morgens - Buero-3/7/0"==EIN then \\
        FreigabeRolladen = EIN \\
        else \\
        FreigabeRolladen = AUS \\
        endif

        if Init==EIN and FreigabeRolladen == EIN then \\
        write("Buero auf/ab-3/0/0",AUS) \\
        endif

        // Änderung der Rolladenfreigabe mitloggen
        LogData = $$
        Uhrzeit = convert(hour(),$$) + $.$ + stringformat(minute(),0,3,2,2) + $ Uhr$
        if Init==EIN and change(FreigabeRolladen) then \\
        LogData = LogData + Uhrzeit + $;$; \\
        LogData = LogData + convert(sun(),$$) + $;$; \\
        LogData = LogData + convert("Automatik Morgens - Buero-3/7/0",$$) + $;$ \\
        endif
        [/highlight]

        Die Variable LogData kannst Du über den Debugger beobachten und siehst so immer genau was bei Änderung der Freigabe passiert ist.

        Viele Grüße

        Michael

        Kommentar


          #5
          Zitat von kaempfen Beitrag anzeigen
          dann gehen wohl die Läden beim Systemart hoch als auch vergisses wird um +1 erhöht... .
          Hast Du das Problem nur beim Systemstart oder jeden Morgen?

          Und lass mal den Monitor mitlaufen. Über welche GA wird der Rollo im Büro hochgefahren? An welchen Stellen wird auf diese GA in deinem Programm zugegriffen? Vielleicht ist es ja ne ganz andere Code-Zeile, die das Problem macht. Alternativ die eine Zeile mal auskommentieren und testen, was passiert.
          ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

          Kommentar


            #6
            Hey danke euch...

            Hatte eine Stelle im Code ganz vergessen (dabei habe ich sie deutlich mit TEST TEST TEST markiert ?!) War tatsächlich so.... Und die Codestelle war ausgerechnet auch mit Sun()) Also klar mein Fehler. Danke für eure Hinweise!

            Kommentar

            Lädt...
            X