Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zum zyklisch Senden beim MDT AMI-0816.01

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

    #16
    Hallo Andreas,

    die AMIs sind gerade überarbeitet worden. Hier kannst du bei Unterschreitung und 30min Verzögerung den Kanal abschalten.
    Das zyklische Senden ist unverändert.
    Man müsste dann für solche Sonderfälle eine Filterfunktion einbauen. Im Prinzip geht das gewünschte Verhalten ja auch, nur halt nicht in Verbindung mit dem zykl. Senden.

    Gruß
    Hans-Joachim

    Kommentar


      #17
      Hi,

      nachdem ich mit meinem neuen AMI-1216.02 auch auf dieses Verhalten vom zyklischem Senden reingefallen bin und nach einiger Suche auf diesen Thread gestoßen bin, muss ich den Thread nochmal hochholen.
      Ich bin, ehrlich gesagt, von der Aussage

      Zitat von hjk Beitrag anzeigen
      Die Kombination macht so keinen Sinn.
      ziemlich enttäuscht. Vor allem, weil der TE ja nicht der einzige ist, der auf diesen Gedanken kommt…
      Hier ist die Implementation von „zyklisch Senden“ einfach nur sehr primitiv im Sinne von „wir wiederholen einfach den zuletzt angenommenen Wert des Ausgangs-KO“. Oder als Pseudocode:
      Code:
      Wiederhole alle x Minuten:
          Sende Wert vom Ausgangs-KO
      Das UI impliziert aber, dass das zyklische Senden die gesamte Funktion betrachtet (und das würde ich auch in diesem Fall erwarten): Es wird alle n Minuten das Telegramm gesendet, das sich aus dem aktuellen Zustand der Lastüberschreitung-/nach Lastüberschreitung-Parameter ergibt (analog für Lastunterschreitung). Oder wieder als Pseudocode:
      Code:
      Wiederhole alle x Minuten:
          Wenn Lastüberschreitung:
              Sende Telegramm „bei überschreiten“ (also EIN-, AUS- oder [B]kein Telegramm[/B])
          Sonst:
              Sende Telegramm „nach überschreiten“ (also EIN-, AUS- oder [B]kein Telegramm[/B])
      So würde man „zyklisch Senden“ sinnvoll für diese Funktion gebrauchen können! Faktisch kann man in der aktuellen Implementierung „zyklisch Senden“ nicht nutzen, sobald einer der beiden Telegrammeinstellungen auf „kein Telegramm steht“.

      Die andere Lösungsmöglichkeit wäre, den Parameter „zyklisch Senden“ immer auszublenden, wenn eine der beiden Telegrammeinstellungen auf „kein Telegramm“ steht. Das wäre meiner Meinung nach die schlechtere, aber wohl einfacher zu erreichende Lösung.

      Ich finde es schade, dass das hier bisher „Wegdiskutiert“ wurde, weil eigentlich die sonstigen MDT-Applikationen durchaus zeigen, dass man sich der Sinnhaftigkeit vom Senden bzw. Wiederholen von „nur EIN-" oder „nur AUS-Signalen“ bewusst ist.

      Auch wenn das Wahrscheinlich keine Auswirkungen auf zukünftige Revisionen haben wird, wollte das als (hoffentlich konstruktiv verstandenes) Feedback loswerden.

      Gruß, Waldemar

      OpenKNX www.openknx.de

      Kommentar


        #18
        Das zyklische Senden macht in der Tat nur Sinn, wenn bei Über- und Unterschreiten unterschiedliche Werte eingestellt sind.
        Zyklisches Senden mit kein Telegramm ist auch nicht wirklich sinnvoll.
        Hast du da mal einen Anwendungsfall?
        Die Änderung kann ohnehin erst mit einer zukünftigen Version einfließen.

        Kommentar


          #19
          Hi,

          zyklisch Senden, bei dem weder ein EIN- noch ein AUS-Telegramm gesendet wird, macht natürlich keinen Sinn, das sehe sogar ich ein
          Ich meine hier aber die derzeit nicht unterstützten Kombinationen
          • Bei Überschreiten EIN-Telegramm, nach Überschreiten kein Telegramm
          • Bei Überschreiten AUS-Telegramm, nach Überschreiten kein Telegramm
          • Bei Überschreiten kein Telegramm, nach Überschreiten EIN-Telegramm
          • Bei Überschreiten kein Telegramm, nach Überschreiten AUS-Telegramm
          Wenn man bei denen zyklisch Senden anmacht, bekommt man alle n (z.B. 15) Minuten ein Telegramm mit dem Wert, der zuletzt auf dem Ausgangs-KO anlag, unabhängig davon, ob die Auswertung der Bedingung eigentlich zu "kein Telegramm" führen würde.

          Ich bin beim alten (.01) Strommessaktor da schon mehrmals drauf rein gefallen und hatte gehofft, dass sich das inzwischen geändert hätte...

          Ein Beispiel bringe ich noch, aber ich muss zum Dienst, das wird erst morgen was.

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #20
            So, hier ein eigentlich simples Beispiel (mit Lösung, soll aber die „Odyssee“ zeigen, die Nötig ist):

            Außensteckdose, soll folgendes können:
            • manuell einschalten,
            • manuell ausschalten,
            • automatisch ausschalten, wenn sie 1 Stunde lang nicht genutzt wurde
            • gesperrt (AUS) im Falle von Abwesenheit

            Die eigentlich intuitive Lösung:
            • Schaltkanal auf Treppenlicht mit 1 Stunde, manuell ausschalten, manuell verlängern
            • Strommessung mit Lastüberschreitung, nur EIN-Telegramm, alle 15 Minuten wiederholen
            • Den Ausgang Lastüberschreitung direkt an den Eingang von Schaltkanal
            • Sperre mit „AUS beim Sperren“
            geht nicht, weil die Telegrammwiederholung eben immer die 1 schickt -> Steckdose bleibt nach erster Benutzung immer an. EIN- und AUS-Telegramm geht nicht, weil dann ein Ausschalten des Verbrauchers den Schaltkanal ausschalten würde (z.B. beim Heckenschneiden). Ohne zyklisch senden geht nicht, weil dann langlaufende Verbraucher nach einer Stunde abgeschaltet werden (z.B. der elektrische Rollstuhl meines Vaters beim Laden).

            Die Lösung ist lang und steinig (viele Experimente):
            • Schaltkanal normal (kein Treppenlicht) mit 1 Stunde Ausschaltverzögerung
            • Strommessung mit Lastüberschreitung, EIN- und AUS-Telegramm, alle 15 Minuten wiederholen
            • Rest wie oben
            Wenn man hier manuell einschaltet und einen Verbraucher anschließt, dann geht die Strommessung auf 1, bei der kurzlaufenden Verbrauchern (Heckenschere) geht zwar die Lastüberschreitung auf 0, aber der Schaltkanal bleibt wegen der Ausschaltverzögerung an. Bei langlaufenden Verbrauchern bleibt ja die Lastüberschreitung auf 1. Eine Stunde nach der letzten Benutzung geht der Schaltkanal aus. Die Wiederholung bei der Lastüberschreitung braucht man für den Fall, dass einer den Schaltkanal manuell eingeschaltet hat und keinen Verbraucher anschließt. Ohne Wiederholung würde der Schaltkanal an bleiben, mit Wiederholung bekommt er nach spätestens 15 Minuten eine 0 und geht somit spätestens nach 60+15=75 Minuten aus.

            Funktioniert bis dahin, es fehlt noch, dass man nicht manuell ausschalten kann (die Steckdose bleibt dann immer noch eine Stunde an). Um das zu erreichen, habe ich:
            • Sperre genutzt: Beim Sperren Kanal aus, beim Entsperren Kanal an
            • Statt den Taster mit dem Schalteingang zu verbinden, ist er jetzt mit der Sperre verbunden
            Würde für diese Funktion an sich reichen, da Sperren-AUS sofort zieht und die Ausschaltverzögerung ignoriert (was ich auch schade finde, aber das ist eine andere Story). Kollidiert aber mit meiner Abwesenheitsfunktion, die auch mit der Sperre verbunden ist. Somit ist nach der Rücknahme der Abwesenheit die Steckdose immer für min. 1 Stunde an.

            Final habe ich dann noch ein NOT im Glastaster genutzt:
            • Sperre macht beim Sperren AUS, beim Entsperren gar nichts
            • Glastaster setzt Sperre (beim Ausschalten) und nimmt sie zurück (beim Einschalten)
            • Über das NOT ist der Glastaster auch mit dem Schalteingang gekoppelt, so wird beim Zurücknehmen der Sperre auch ein Einschaltsignal geschickt.

            Jetzt verhält sich das Ganze so, wie man es erwarten würde, aber die Lösung entspricht kein bisschen dem intuitiven ersten Ansatz und braucht auch noch externe Logik (auch wenn im Glastaster enthalten). Ferner wird die Dose mit „negativer Logik“ geschaltet (1 = ausschalten/sperren, 0=einschalten/entsperren).

            Mein Punkt hier ist nicht, dass man es nicht doch irgendwie erreichen kann. Mein Punkt ist, dass es komplizierter ist, als es sein müsste, nicht wirklich intuitiv, durch solche Aspekte wie „negative Logik“ sind zukünftige Erweiterungen fehleranfällig und es entspricht nicht dem Gedankenmodell dahinter (zumindest nicht meinem Gedankenmodell).

            Deswegen plädiere ich für eine Änderung des Verhaltens, auch wenn ich davon nichts mehr haben werde (weil in einer zukünftigen Revision). Außer natürlich, ihr braucht Betatester...

            Gruß, Waldemar

            OpenKNX www.openknx.de

            Kommentar


              #21
              O.K., verstehe die Aufgabe.
              Ohne, dass ich jetzt in die Applikation geschaut habe ein anderer Weg:
              Kanal auf normal schalten, dann haben wir das zyklische Senden schonmal aus dem Weg.
              Kanal abschalten bei Lastunterschreitung mit 1Std Verzögerung (intern ohne Objekt).
              Der Rest geht dann so wie du gedacht hast.

              Ich notiere das mal, wenn eine neue Version kommt kann man das ja mal ändern.

              Kommentar


                #22
                Hi,

                danke für Deinen Vorschlag, hab ich jetzt noch nicht ausprobiert, aber die Lücke die ich hier sehe ist: Wenn man einschaltet (z.B. versehentlich) und keinen Verbraucher anschließt, wird die Lastunterschreitung auch nach 1 Stunde nichts senden, da die Grenze nie überschritten wurde. Dafür bräuchte man dann wieder zyklisch senden...

                Aber mir geht es gar nicht um die Lösung meiner Probleme, ich bekomme das hin, notfalls auch mit einer Zusatzlogik. Ich finde es nur schade, wenn Dinge komplizierter gehen als es sein müsste.

                Ich bin auf diesen Thread gestoßen, weil ich das Verhalten als Bug empfand und Feedback geben wollte. Dann habe ich Deinen Kommentar
                Zitat von hjk Beitrag anzeigen
                Die Kombination macht so keinen Sinn.
                gesehen und wollte nur konstruktiv vermitteln, dass es durchaus Sinn macht, wenn das Verhalten so wie von mir beschrieben angepasst wird. Das tolle ist, dass die schon funktionierenden Fälle keine Verhaltensänderung erfahren.

                Ich bin mit Deiner Aussage
                Zitat von hjk Beitrag anzeigen
                Ich notiere das mal, wenn eine neue Version kommt kann man das ja mal ändern.
                vollkommen glücklich, mehr wollte ich nicht erreichen.

                Gruß und noch ein schönes Wochenende,
                Waldemar

                OpenKNX www.openknx.de

                Kommentar


                  #23
                  Die vorgeschlagene Lösung muss so funktionieren. Die interne Lastunterschreitung kommt direkt, wenn aber in der Verzögerungszeit eine Last erkannt wird, wird der Vergang unterdrückt. Die Funktion ist ja für genau solche Fälle gedacht.

                  Das zyklische Senden könnte so geändert werden, dass in deinem Fall bei Last zyklisch die 1 kommt und bei Lastunterschreitung eben nichts gesendet wird. Ist notiert.
                  Im ersten Moment machte die Einstellung keinen Sinn, mit der Änderung aber schon.
                  Ist notiert.

                  Danke und Gruß von Mallorca
                  hjk

                  Kommentar


                    #24
                    Ok, ich werde das auf jeden Fall nochmal ausprobieren. Danke für den Tipp.
                    Allerdings bin ich auch gerade auf dem Weg in den Urlaub und kann es erst in 2 Wochen testen.

                    Noch einen schönen Urlaub und viele Grüße,
                    Waldemar
                    OpenKNX www.openknx.de

                    Kommentar


                      #25
                      Zitat von hjk Beitrag anzeigen
                      Ich notiere das mal, wenn eine neue Version kommt kann man das ja mal ändern.
                      Nachdem ich ja der TO bin:

                      Grüße aus Italien

                      Kommentar

                      Lädt...
                      X