[vz-users] Frage zur Darstellung mit Steps

Matthias Kammerer kammererm at gmail.com
Wed Jul 27 19:57:14 CEST 2016


Habe jetzt ein "stepsbefore" eingefügt und folgendes angepasst (aber nur
ganz kurz getestet):

root at homeserver:/var/www/serverroot/volkszaehler.org# grep -r stepsbefore
htdocs/frontend/vendor/flot/jquery.flot.fillbetween.js:
withsteps = withlines && (s.lines.steps || s.lines.stepsbefore),
htdocs/frontend/vendor/flot/jquery.flot.stack.js:                withsteps
= withlines && (s.lines.steps || s.lines.stepsbefore),
htdocs/frontend/javascripts/entity.js:
case 'stepsbefore': value = 'Stufen-vorher'; break;
htdocs/frontend/javascripts/entity.js:
case 'stepsbefore': value = 'Stufen'; break;
htdocs/frontend/javascripts/wui.js:             if (series.lines.steps ||
series.lines.stepsbefore) {
htdocs/frontend/javascripts/wui.js:                     if (style ==
"stepsbefore") {
htdocs/frontend/javascripts/wui.js:
show:       style == 'lines' || style == 'steps' || style == 'stepsbefore',
htdocs/frontend/javascripts/wui.js:
steps:      style == 'steps' || style == 'stepsbefore',
lib/Definition/PropertyDefinition.json:                 "stepsbefore",
lib/Definition/EntityDefinition.php:     * @var string
(lines|points|steps|stepsbefore)

Gibt aber sicher elegantere Lösungen ;-)

Am 27. Juli 2016 um 19:12 schrieb Andreas Goetz <cpuidle at gmail.com>:

> Ich schaue mir- endlich- mal an. Auch ein paar der EntityDefinitions
> müssen korrigiert werden. Update folgt hier.
>
> Viele Grüße, Andreas
>
> On 27 Jul 2016, at 18:49, Matthias Kammerer <kammererm at gmail.com> wrote:
>
> Stimmt... kann man tatsächlich weglassen und ist vermutlich sogar besser
> so. Ansonsten müsste ich auch nochmal korrigieren:
>
>                                 tuples.unshift([entity.data.from, 1, 1]);
> // add new first ts
>                                 tuples[*0*][1] = tuples[*1*][1];
>
> Was ich mir noch zutrauen würde, wäre neben "Steps" ein "Steps-before"
> einzuführen, also auswählbar über "Style". Wäre das eine akzeptable Lösung?
>
> Gruß
>
>
>
> Am 27. Juli 2016 um 17:45 schrieb Andreas Götz <cpuidle at gmail.com>:
>
>>
>> Am 27.07.2016 um 17:23 schrieb Matthias Kammerer <kammererm at gmail.com>:
>>
>> OK... habs jetzt quick and dirty so gelöst:
>>
>>                         // mangle data for "steps" curves by shifting one
>> ts left ("step-after")
>>                         if (style == "steps") {
>>                             tuples.unshift([entity.data.from, 1, 1]); //
>> add new first ts
>>                             tuples[1][1] = tuples[2][1];
>>                         }
>>
>> Sieht das plausibel aus?
>>
>>
>> Denke es tut- aber Du kannst das ganze if auch wegschmeissen. Jetzt fehlt
>> nur noch das Verhalten via display mode konfigurierbar zu machen und den
>> Defaultwert im Kanaltyp z.B. für Ventile zu hinterlegen.
>>
>> Viele Grüße, Andreas
>>
>>
>> Jetzt gibt es bei mir eben kein "step-before" mehr, was ich aber auch
>> nicht brauche.
>>
>>
>> Am 27. Juli 2016 um 16:53 schrieb Matthias Kammerer <kammererm at gmail.com>
>> :
>>
>>> Bin ich hier richtig?
>>> // mangle data for "steps" curves by shifting one ts left ("step-before")
>>>                         if (style == "steps") {
>>>                                 tuples.unshift([entity.data.from, 1,
>>> 1]); // add new first ts
>>>                                 for (i=0; i<tuples.length-1; i++) {
>>>                                         tuples[i][1] = tuples[i+1][1];
>>>
>>>                                 }
>>>                         }
>>>
>>>
>>> Am 27. Juli 2016 um 16:34 schrieb Matthias Kammerer <kammererm at gmail.com
>>> >:
>>>
>>>> Besten Dank schonmal für die Infos.
>>>>
>>>> Kleine Anmerkung zur Rückfrage bei den Points: geplottet wird
>>>> tatsächlich nur der Point, aber in der Legende werden ja dann die Werte zum
>>>> Curser angezeigt. Da kommen dann die linearen Übergänge.
>>>>
>>>> Invertieren ist für das beschriebene Beispiel tatsächlich eine gute
>>>> Idee, aber... leider habe ich dann doch ab und zu sich wiederholende Werte
>>>> drin und spätestens bei der Leistungsdeckelung meines Wechselrichters ist
>>>> es vorbei :-|
>>>>
>>>> Ich könnte mich mal an dem verlinkten Issue #338 versuchen. Da ich mich
>>>> komplett reindenken muss, bin ich mir nicht sicher, ob ich ausreichend
>>>> Einarbeitungszeit finde und bin natürlich für jedes Futter dazu dankbar
>>>> ;-).
>>>>
>>>>
>>>> Am 27. Juli 2016 um 11:43 schrieb Andreas Götz <cpuidle at gmail.com>:
>>>>
>>>>>
>>>>> Am 27.07.2016 um 11:36 schrieb Christian Schnellrieder <
>>>>> schnellrieder.cs at gmail.com>:
>>>>>
>>>>> Kleiner Nachtrag:
>>>>> kann man die Darstellung nicht berichtigen in dem man die Werte
>>>>> invertiert?
>>>>>
>>>>>
>>>>> Coole Idee! Für den Spezialfall des Ventils sollte das klappen- wenns
>>>>> Zwischenwerte gibt nicht (40% auf?).
>>>>>
>>>>>
>>>>> Christian Schnellrieder <schnellrieder.cs at gmail.com> schrieb am Mi.,
>>>>> 27. Juli 2016 um 11:32 Uhr:
>>>>>
>>>>>> Hallo.
>>>>>>
>>>>>> >Hat jemand einen Lösungsvorschlag oder vielleicht sogar eine Lösung?
>>>>>>
>>>>>>
>>>>>> Unschön aber bis das im Vz gefixt ist.
>>>>>> Eine Schleife laufen lassen welche immer den letzten Status pusht.
>>>>>>
>>>>>> Grüße
>>>>>>
>>>>>> Andreas Götz <cpuidle at gmail.com> schrieb am Mi., 27. Juli 2016 um
>>>>>> 10:57 Uhr:
>>>>>>
>>>>>>> Hallo Matthias,
>>>>>>>
>>>>>>> Am 27.07.2016 um 10:15 schrieb Matthias Kammerer <
>>>>>>> kammererm at gmail.com>:
>>>>>>>
>>>>>>> Hallo zusammen,
>>>>>>>
>>>>>>> Ich habe verschiedene Kanäle z.B. als Ventil oder als
>>>>>>> Leistungswerte, welche diskrete Werte annehmen. Dabei werden die Daten fast
>>>>>>> ausschließlich in die Datenbank geschrieben, wenn sich etwas ändert. Also
>>>>>>> im einfachsten Fall ein Schaltventil mit den Werten 0... 1: Wenn das Ventil
>>>>>>> auf 1 geschalten wird, dann kommt die 1 mit Zeitstempel, wenn es auf 0
>>>>>>> gestellt wird, dann entsprechend die 0.
>>>>>>>
>>>>>>> Ziel wäre nun, dass der Zustand über der Zeit im frontend so lange
>>>>>>> den letzten Wert anzeigt, bis ein neuer Wert gesetzt ist. Je nach
>>>>>>> Einstellung schaffe ich aber nur folgendes, was leider nicht ganz korrekt
>>>>>>> ist:
>>>>>>> A: Ich wähle "points" oder "lines" --> Dann wird zwischen den Werten
>>>>>>> gewichtet gemittelt. D.h. das Schaltventil läuft zwischen den Datenpunkten
>>>>>>> stetig und linear zum jeweils folgenden Wert.
>>>>>>>
>>>>>>>
>>>>>>> Das stimmt nur für lines. Points zeit exakt den Punkt, sonst nichts?
>>>>>>>
>>>>>>> B: Ich wähle Steps --> Dann wird entlang der Zeitachse immer der
>>>>>>> Wert des nächsten Datenpunktes angezeigt und nicht das letzten Punktes.
>>>>>>> D.h. wenn ich das Ventil am Morgen auf "0" Stelle und am Abend auf "1",
>>>>>>> dann zeigt es mir den ganzen Tag eine "1" anstelle der "0" an.
>>>>>>>
>>>>>>>
>>>>>>> Ist bekannt. Wir bräuchten
>>>>>>> https://github.com/volkszaehler/volkszaehler.org/issues/338
>>>>>>> Leider fehlt mir aktuell die Zeit und ich hab selber kein Ventil im
>>>>>>> Einsatz...
>>>>>>>
>>>>>>>
>>>>>>> Ich habe schon versucht, den Sensor-Interpreter etwas zu verbiegen,
>>>>>>> um zum Erfolg zu kommen, bin damit aber nicht weitergekommen.
>>>>>>>
>>>>>>> Hat jemand einen Lösungsvorschlag oder vielleicht sogar eine Lösung?
>>>>>>>
>>>>>>>
>>>>>>> Das wäre in der vz.wui.plot Funktion zu regeln- relevante Timestamps
>>>>>>> um 1 shiften da die Chartbibliothek die Funktion nicht her gibt.
>>>>>>>
>>>>>>>
>>>>>>> Besten Dank und Gruß
>>>>>>> Matthias
>>>>>>>
>>>>>>>
>>>>>>> Viele Grüße, Andreas
>>>>>>>
>>>>>>
>>>>
>>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20160727/f0540ef1/attachment-0001.html>


More information about the volkszaehler-users mailing list