Ankündigung

Einklappen
Keine Ankündigung bisher.

Pluginidee: Wertänderung von Items auf Basis einer "Sollwertkurve"

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

    #46
    Neuester commit https://github.com/smarthomeNG/plugins/pull/159/commits/46f3694e74b2024233dc755596a0cb8c264ea8d0
    Ich mache nun für alle Einträge, die ein leeres rrule haben, einen MO-SU rrule Eintrag. Dadurch lassen sich die nötigen Interpolationswerte deutlich besser errechnen.
    Zuletzt geändert von Onkelandy; 22.09.2018, 22:23.

    Kommentar


      #47
      smai Zusätzlich zu dem Bug hier https://knx-user-forum.de/forum/supp...37#post1264437 hab ich bemerkt, dass es mit den Min/Max-Anfassern bzw. va. der Linie dazwischen immer dann ein Problem gibt, wenn mehr als ein Sunrise/Sunset Event definiert ist. Gibt man also zB an, dass bei Sonnenaufgang mit min/max x Uhr was passieren soll und auch Sonnenaufgang mit min/max und zB 30 Minuten Offset, dann kommt die Anzeige für min/max durcheinander.

      Der "calculated" Wert wird im aktuellen PR von mir ausgewertet. Ob das mit anderen System außer shng funzt, müsst man noch testen. Thx.

      Kommentar


        #48
        Die Probleme bei Gleichzeitigkeiten und überschneidenden min/max sind nun behoben - Highcharts hat es mir da nicht einfach gemacht.
        Die Tooltips habe ich auch noch etwas verbessert.

        Ist jetzt noch irgend etwas offen, dass ich vergessen habe?

        Kommentar


          #49
          Danke für das Update! Kann bestätigen, dass...
          - das mit dem min/max Handle nun problemlos funktioniert
          - inaktive Punkte als solche angezeigt werden, auch wenn es mehrere zum gleichen Zeitpunkt gibt.

          Was noch ein recht grobes Problem ist: kommt man der Linie recht nah, wird immer der letzte/vorige Punkt markiert. Das ist va. dann nervig, wenn man ohne Interpolation den min/max für die Sonne anfassen will. Da hat man eigentlich keine Chance, wenn min/max recht nah am Keyframe sind.

          Und noch ein Prob: Das uzsuicon speichert auch holiday sowie condition und delayedExec, was das uzsugraph nicht macht. Kannst du die beiden bitte noch updaten? In welche Richtung auch immer.. Ich vermute aber, dass die Infos vom uzsugraph ausreichend sind?

          Danke!

          Kommentar


            #50
            Zitat von Onkelandy Beitrag anzeigen
            Was noch ein recht grobes Problem ist: kommt man der Linie recht nah, wird immer der letzte/vorige Punkt markiert. Das ist va. dann nervig, wenn man ohne Interpolation den min/max für die Sonne anfassen will. Da hat man eigentlich keine Chance, wenn min/max recht nah am Keyframe sind.
            Das habe ich auch festgestellt, aber leider kein Mittel dagegen gefunden.
            Es gibt anscheinend keine Option, damit die Linien sich nicht so verhalten. series.line.enableMouseTracking bezieht sich nicht nur auf die Linien, sondern auch auf die Punkte.
            Ich nehme da gerne Lösungsideen an.

            Zitat von Onkelandy Beitrag anzeigen
            Und noch ein Prob: Das uzsuicon speichert auch holiday sowie condition und delayedExec, was das uzsugraph nicht macht. Kannst du die beiden bitte noch updaten?
            Diese werden aber meines Wissens nur für FHEM und nicht für SHNG benötigt.
            Eigentlich halte ich es eher für einen Fehler, dass das uzsuicon diese unabhängig vom Backend setzt.

            Kommentar


              #51
              Kann das hier helfen? https://github.com/highcharts/dragga...ints/issues/40
              Mein Test ist aber leider gescheitert... die aktiven Punkte werden immer mit Linien verbunden, egal wie ich den Type dafür einstelle...

              Spricht was dagegen, im uzsuicon das dann abzufangen und bei smarthomeng nur die nötigen Dict-Einträge zu speichern? Ich müsste dann halt im Plugin zu Beginn dafür sorgen, dass diese Einträge auch aus dem dict gelöscht werden, damit das Deaktivieren von Einträgen mit gleicher Zeit auch funktioniert.

              Kommentar


                #52
                Zitat von Onkelandy Beitrag anzeigen
                Kann das hier helfen? https://github.com/highcharts/dragga...ints/issues/40
                Mein Test ist aber leider gescheitert... die aktiven Punkte werden immer mit Linien verbunden, egal wie ich den Type dafür einstelle...
                Leider ist dies genau das Problem, mit scatter kann man zwar line simulieren, aber keine spline.

                Zitat von Onkelandy Beitrag anzeigen
                Spricht was dagegen, im uzsuicon das dann abzufangen und bei smarthomeng nur die nötigen Dict-Einträge zu speichern? Ich müsste dann halt im Plugin zu Beginn dafür sorgen, dass diese Einträge auch aus dem dict gelöscht werden, damit das Deaktivieren von Einträgen mit gleicher Zeit auch funktioniert.
                Ich kann diese schon löschen, verstehe aber nicht ganz, weshalb deren Abwesenheit irgend einen Einfluss in SHNG hat. Diese sind ja in SHNG nicht dokumentiert und in bestehenden Daten oder solche, welche nich aus sV kommen, auch nicht vorhanden.

                Kommentar


                  #53
                  Wenn uzsugraph und uzsuicon nicht die gleichen Einträge speichern, funktioniert das Löschen von identischen Einträgen bzw Deaktivieren von Einträgen mit gleicher Uhrzeit durch das shng Plugin nicht.

                  Kommentar


                    #54
                    smai Ich hab eine Lösung für das Linien-Problem gefunden! Der Typ muss immer scatter bleibe, lineWidth auf 2. Durch Ändern der Interpolation sollte nun nicht der Typ, sondern folgende Zeile abgeändert werden, die zB vor var chart = stehen müsste:
                    Code:
                    var linetype = this._uzsudata.interpolation.type == 'cubic' ? 'spline' : 'line';
                    Highcharts.seriesTypes.scatter.prototype.getPointSpline = Highcharts.seriesTypes.linetype.prototype.getPointSpline;
                    Also die getPointSpline-Sache kann man jedenfalls nutzen, um einen scatter als spline oder line anzuzeigen. Hier ein Beispiel:
                    http://jsfiddle.net/BlackLabel/wsfrh1ky/15/

                    Kommentar


                      #55
                      Hast du das mit mehreren Charts in der Visu getestet?
                      Wenn man den prototype ändert, wirkt sich das wahrscheinlich auf alle Charts aus.
                      Und das nicht nur auf device.uzsugraph sondern jeden Plot und zudem auf allen Seiten, die danach geladen werden.

                      Wolltest du in der zweiten Zeile nicht eher
                      Highcharts.seriesTypes.[linetype].prototype schreiben?

                      Kommentar


                        #56
                        Ich hab ehrlich gesagt keine Ahnung, ob das mit meinen 2 Zeilen überhaupt funktionieren kann. Klammern um linetype mag er jedenfalls auch nicht. Ich habe jetzt halt mal ne billige if/else Abfrage gemacht. Und tadaaaa, funzt auch mit mehreren Graphs auf einer Seite!!!
                        Code:
                        if(this._uzsudata.interpolation.type == 'cubic')
                                Highcharts.seriesTypes.scatter.prototype.getPointSpline = Highcharts.seriesTypes.spline.prototype.getPointSpline;
                            else
                                Highcharts.seriesTypes.scatter.prototype.getPointSpline = Highcharts.seriesTypes.line.prototype.getPointSpline;
                        in Zeile 1883 also nach den vars für die Sonne eingesetzt. Die anderen type-Aufrufe hab ich auskommentiert, also zB bei chart.get('active').update({

                        Ich bin mir sicher, du kannst das nobel zusammenstecken alles, daher spar ich mir n PR

                        Ein kleines Problem hab ich übrigens noch: Klicke ich auf einen der drei Interpolationsbuttons, wird er entsprechend weiß. Beim Laden der Seite ist aber keiner weiß. Da wäre schön, wenn der aktuelle Modus "aktiviert" wäre. Siehe Anhang (auch als Beweis für spline / line ) Außerdem werden sie NACH einem Mousover weiß und wechseln dann aber nicht mehr zurück (letztlich hab ich dann 3 weiße Icons nebeneinander). Hab ich da was verpfuscht?


                        uzsugraph.png

                        Kommentar


                          #57
                          Der Punkt vor der Klammer hätte noch weg müssen:
                          Highcharts.seriesTypes[linetype].prototype
                          In JS ist foo.bar == foo["bar"]

                          Den Rest schaue ich mir wie erwähnt später an. Das mit den Interpolationsbuttons wäre mir nicht aufgefallen, kann es aber nicht ausschliessen.

                          Kommentar

                          Lädt...
                          X