Ankündigung

Einklappen
Keine Ankündigung bisher.

UZSU - mehrere Einträge in einer uzsu mit der gleichen Zeit!

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

    UZSU - mehrere Einträge in einer uzsu mit der gleichen Zeit!

    Hallo, ich denke, es gibt noch einen kleinen Bug oder eine Fehlende Funktion in der UZSU.

    Wenn man mehrere Einträge mit der gleichen Zeit in einem Item einer UZSU hat, dann wir nur der erste Eintrag geschaltet.
    Nun ist es ja zumindestens bei Bool Items sinnlos zwei gleiche Zeiten zu definieren.
    Bei NUM Items sieht das aber anders aus...

    Beispiel:
    Ich habe eine UZSU eingerichtet für eine einfache Abwesenheitssimulation.
    Das Ganze funktioniert mit einem ITEM (uzsu) das einen NUM Wert hat. Der NUM-Wert stellt dann eine Szenen Adresse dar.
    In den unterschiedlichen Szenennummern werden dann unterschiedliche Zustände der Leuchten definiert.
    Wenn ich nun um 22:00 Uhr mehrere Szenen in der UZSU aufrufe wird halt nur der erste Eintrag gesendet.
    Ich habe das jetzt so gelöst, dass die Events halt jeweils eine Minute auseinander liegen (22:00, 22:01, 22:02 etc.).
    Es hat aber ein wenig gedauert bis das verstanden habe ;-)

    Wäre es nun denkbar, für eine spätere Version dieses Problem zu lösen?
    Also: Es müssten mehrere Einträge mit der gleichen Uhrzeit einer UZSU in eine Liste gefasst werden und dann nacheinander abgearbeitet werden.






    #2
    Wie soll denn die UZSU zur gleichen Zeit unterschiedliche Werte auf ein und dasselbe Item senden?
    MMn die einzige mögliche Verbesserung wäre, den Zeitpunkt mit Sekunden zu ergänzen.

    Kommentar


      #3
      Naja, das wäre technisch gesehen ja nicht genau die selbe Zeit.
      Ich dachte so an eine interne Überwachung, wenn Werte in der gleichen Minute sind, diese dann nacheinander abzuarbeiten. (Dann evtl. Im Sekunden Takt.).
      Das sollte aber intern passieren. Eine Einstellung auf Sekunden halte ich für übertrieben und würde wieder andere Probleme mit sich bringen (z.B. Der Platz in dem Fenster der Visu)

      Eine andere Alternative wäre es, in der Visu eine „gleiche Zeit“ abzufangen und eine Fehlermeldung auszugeben.
      Wie: Diese Zeit kann nicht angelegt werden, da es schon einen Einzrag für diese Zeit gibt.

      So wie es jetzt ist, wird der Eintrag angelegt aber stillschweigend nicht abgearbeitet.

      Kommentar


        #4
        Die Frage wäre, welches Verhalten generell am sinnvollsten wäre. Der Anwendungsfall ist schon sehr speziell und ich würde ich tatsächlich empfehlen, das entweder so abzufangen, dass im Minutentakt ein neuer Wert gesetzt wird, oder eine Logik, ein eval, etc. das Ganze regelt.

        Übers Plugin könnte man vielleicht abfangen, wenn ein neuer Eintrag mit der gleichen Zeit gesetzt wird. So, dass dann der alte aus dem dict gelöscht wird z.B.?

        Kommentar


          #5
          Zitat von Onkelandy Beitrag anzeigen
          Übers Plugin könnte man vielleicht abfangen, wenn ein neuer Eintrag mit der gleichen Zeit gesetzt wird. So, dass dann der alte aus dem dict gelöscht wird z.B.?
          Das wäre ja auch gut.
          Nur müsste die Visu das natürlich auch Visualisieren können.

          Kommentar


            #6
            Hab nun ein Feature eingebaut, das alte Einträge löscht, sobald ein neuer mit exakt denselben Informationen gespeist wird außer dem Wert. Sollte soweit ganz gut funktionieren, aber nur bei neuen Einträgen, nicht bei bestehenden Duplikaten:
            https://github.com/smarthomeNG/plugi...4ed3593ea817ad

            In der plugin-Config muss remove_duplicates: True gesetzt sein. Im Übrigen hilft auch das neue uzsugraph widget von Stefan, solche Doppeleinträge zu verhindern. Dort zieht man einfach grafisch den Punkt an die gewünschte Stelle.

            Gut, hat jetzt mit der eigentlichen Frage nur noch bedingt was zu tun Aber das mit den Szenen ist schon ein extremer Sonderfall, der sich ja auch anders irgendwie lösen lässt.

            Kommentar


              #7
              Das. Ist doch super so.
              Das mit den Szenen war ja nur der Auslöser warum ich darauf gestoßen bin.
              Ich habe das dann ja auch mit Minuten Versatz gelöst.
              Es ist halt nur blöd, wenn man Sachen anlegen kann, die dann nicht funktionieren. Da sucht man sich mitunter einen Wolf.

              Aber das geht dann ja nun.
              Gute Lösung für das Problem.

              Das neue Uzsu Plugin kann ich aus dem DEV kopieren?

              Kommentar


                #8
                Momentan nur aus meinem Fork: https://github.com/onkelandy/plugins/tree/uzsu/uzsu
                Wäre schön, wenn du's ein bisschen testen könntest. Es macht Sinn, gerade, wenn man mit sunrise/sunset Offset spielt (die auch mal übertrieben sein dürfen), das orb-File aus dem lib-Ordner auch upzudaten, damit keine Fehler auftreten: https://github.com/smarthomeNG/smarthome/pull/278

                Kommentar


                  #9
                  Hab mir nochmals Gedanken darüber gemacht. So schlau ist das Löschen eigentlich gar nicht. Denn man möchte sich ja vielleicht ein paar Varianten anlegen und dann eine davon auf aktiv setzen, die anderen auf inaktiv Ich schau mal, ob sich das irgendwie anders lösen lässt.

                  Kommentar


                    #10
                    Das stimmt natürlich...

                    Dann evtl doch mit einer Liste zu jedem Minuten Eintrag, die dann nacheinander abgearbeitet wird.

                    Edit:
                    Oder doch im Widget abfangen und dann den anderen Eintrag nicht löschen sondern nur deaktivieren.
                    Zuletzt geändert von schuma; 09.09.2018, 15:45.

                    Kommentar


                      #11
                      Zitat von schuma Beitrag anzeigen
                      dann den anderen Eintrag nicht löschen sondern nur deaktivieren.
                      Das wollte ich auch eben vorschlagen, allerdings nicht zwingend in der Visu sondern eher im Plugin. So verhindert man auch, dass ein Eintrag einfach verschwindet. MMn könnte man dies damit auch zwingend machen und die Einstellung remove_duplicates weglassen, solche Doppeleinträge machen ja eigentlich nie Sinn.

                      Kommentar


                        #12
                        Wir hatten Gott sei Dank alle die gleiche Idee Im Plugin werden nun exakt die gleichen Einträge gelöscht und ältere Einträge automatisch deaktiviert. Voraussetzung dafür ist aber, dass alles außer dem Wert gleich ist. Und da beissen sich momentan uzsuicon und uzsugraph smai

                        Beim Icon werden noch holiday und delayedExec, etc. mit ins dict gespeichert. ich weiß nicht, ob das für ein anderes System relevant ist oder eh raus kann. Jedenfalls sollten bitte beide devices die gleichen dicts schreiben, sonst funzt das nicht.

                        Mit dem vorigen commit hier funktioniert es, sofern man entweder nur mit dem graph oder nur mit dem icon arbeitet. Ich hab die Option, das removing zu deaktivieren, noch drin gelassen, ist nun aber per default auf True.
                        https://github.com/onkelandy/plugins/tree/uzsu

                        Was mir beim uzsugraph noch aufgefallen ist.. Sind zum gleichen Zeitpunkt mehrere inaktive Werte definiert, wird nur 1 angezeigt. Wär super, wenn wirklich alle definierten Einträge drin wären, thx!
                        Zuletzt geändert von Onkelandy; 10.09.2018, 12:58.

                        Kommentar

                        Lädt...
                        X