[vz-users] Frage zur Darstellung mit Steps

Matthias Kammerer kammererm at gmail.com
Wed Jul 27 23:06:41 CEST 2016


Sieht gut aus! Besten Dank!


Am 27. Juli 2016 um 22:56 schrieb Andre Bernemann <andre.bernemann at gmail.com
>:

> Fantastisch, ich teste in Kürze mit!
>
> Gruß
> André
>
> Andreas Götz <cpuidle at gmail.com> schrieb am Mi., 27. Juli 2016 um
> 21:56 Uhr:
>
>> Klasse! Korrigiere ich, bräuchte aber trotzdem noch soegfältige Tester...
>>
>> Viele Grüße,
>> Andreas
>>
>> Am 27.07.2016 um 20:48 schrieb Klaus Reichenecker <kr at kr123.de>:
>>
>> Hallo Andreas,
>>
>>
>> konhte es auf die Schnelle noch nicht testen, aber denke das ist genau
>> das was viele brauchen
>>
>> Vorschlag zum Namen, nachdem Du Dir bei "switch" nicht ganz sicher bist -
>> wie wäre es mit "State`?  - Eigentlich zeigt es ja genau das an ?
>>
>> Viele Grüße
>>
>> Klaus
>>
>> ----- Original Message -----
>> *From:* Andreas Goetz <cpuidle at gmail.com>
>> *To:* volkszaehler.org - users <volkszaehler-users at demo.volkszaehler.org>
>> *Sent:* Wednesday, July 27, 2016 8:07 PM
>> *Subject:* Re: [vz-users] Frage zur Darstellung mit Steps
>>
>> Siehe https://github.com/volkszaehler/volkszaehler.org/pull/450
>>
>> Nicht getestet!
>>
>> Viele Grüße, Andreas
>>
>> On 27 Jul 2016, at 19:57, Matthias Kammerer <kammererm at gmail.com> wrote:
>>
>> Habe jetzt ein "stepsbefore" eingefügt und folgendes angepasst (aber nur
>> ganz kurz getestet):
>>
>> root at homeserver:/var/www/serverroot/volkszaehler.org#
>> <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/2ab13438/attachment-0001.html>


More information about the volkszaehler-users mailing list