[vz-users] [vz-dev] Neue Funktion für das Frontend: "Live" Updates

Andre Bernemann andre.bernemann at gmail.com
Wed Jul 15 14:33:38 CEST 2015


Hallo Andreas,

ich würde den Thread gerne wieder aufwärmen, da mir beim Testen noch ein
paar Punkte aufgefallen sind:

- Das Frontend baut die Verbindung zum Push Server immer in dem Glauben
auf, dass dieser auf dem gleichen Host läuft (parser.hostname). Mein Dev FE
läuft aber auf einem anderen Host, da bräuchte ich das konfigurierbar (und
vielleicht ja jemand anderes auch noch). Was hältst Du
von $config['push']['host'] und einer entsprechende Änderung in init.js?

- Ich hab bei mir ein wenig Timersalat zwischen dem Push Timer und dem
Refresh Timer. Beispiel: Zoom eine Stunde, pushRedraw Timeout 1s, Refresh
Timeout ~8s. Wenn ich das korrekt debuggt habe, überschreibt mir der Push
Timer jedes Mal den Refresh Timer, sodass ich gar keinen Refresh
abbekomme.Erst bei sehr großem Zoom (refresh timer < push timer)
funktioniert das. Als Workaround habe ich der Funktion drawplot zum Testen
einen Parameter spendiert, der beim Aufruf über pushRedrawTimeout false
ist. Sieht dann bei mir besser aus. Ist irgendwie schwer zu debuggen,
gefühlt verhalten sich die Browser da unterschiedlich.

- Ich fände es weiterhin gut wenn Refresh und Push im FE abschaltbar wären
auch wenn es Default On ist. Wenn ich beispielsweise Push Updates mit hoher
Auflösung analysieren möchte, kommt mir der Refresh immer dazwischen und
glättet die Push Daten mit seiner niedrigeren Auflösung weg.

- Wenn man beim Selektieren eines Bereiches im Plot ein Push Update bekommt
ist die Selektion natürlich (wie beim Refresh) weg. Da muss man teilweise
schon schnell sein ;-) Ich habe mal versucht das MouseDown Event abzufragen
um das Update zu verhindern, aber Du hast da bestimmt eine bessere Idee
(--> Austausch von flot gegen Highcharts finde ich generell auch cool).

- Die Anzeige der Werte in der Legende "verschwindet" bei mir Gelegentlich.
Wenn ich da ein Muster erkenne gebe ich Bescheid.

- Es gibt noch den Fehler beim connect auf den Push Server von
demo.volkszaehler,org

Danke!

Viele Grüße
André

Andreas Goetz <cpuidle at gmail.com> schrieb am Mo., 6. Juli 2015 um 09:18 Uhr:

> Hallo Zusammen,
>
> alle anstehenden Funktionen sind jetzt im Entwicklungszweig vorhanden:
>
> - Echtzeitupdates (vzlogger ebenfalls aktualisieren)
> - automatisches Refresh des Frontends
> - Optimierung Speicherverbrauch der Middleware
>
> zusätzlich bietet vzlogger seit heute auch die Möglichkeit S0 Impulse über
> GPIO zu loggen (Danke Matthias!). s0vz kann damit entfallen.
>
> Für Middleware/Frontend ist dafür neben `git pull` auch ein `git checkout
> development` notwendig.
>
> Viele Grüße,
> Andreas
>
>
>
>
> 2015-06-23 16:02 GMT+02:00 Andreas Goetz <cpuidle at gmail.com>:
>
>> Hi Andre,
>>
>> 2015-06-23 15:40 GMT+02:00 Andre Bernemann <andre.bernemann at gmail.com>:
>>
>>> Ok Danke, läuft jetzt!
>>>
>>> Es fehlt noch autobahn,min.js, das hab ich mir mal so runtergeladen,
>>> sollte aber vermutlich mit rein (composer?). In der vzlogger.conf hab ich
>>> mir mal anhand des JSON Templates folgendes zusammengereimt:
>>>
>>>    "push" : [{
>>>        "url" : "http://127.0.0.1:5582",
>>>    }],
>>>
>>
>> Genau. Habe Matthias schon gebeten die vzlogger.conf noch entprechend zu
>> erweitern.
>>
>>
>>>
>>> Im push-server kommen regelmäßig (< Agg-Intervall wie erhofft) Daten für
>>> meine 2 SML Kanäle an (hab da ein debug print drin):
>>>
>>> { "data": [ { "uuid": "xxx", "tuples": [ [ 1435065351598,
>>> 174.90000000000001 ] ] } ] }
>>> { "data": [ { "uuid": "yyy", "tuples": [ [ 1435065351598,
>>> 16628693.600000001 ] ] } ] }
>>>
>>
>> Genau. Da kommen die Rohwerte vom Zähler an und werden dann vom PushHub
>> in Momentanwerte konvertiert.
>>
>>
>>>
>>> Im Frontend gab es zunächst ein Problem, er konnte nicht auf 8082 auf
>>> demo.volkszaehler.org connecten. Hier habe ich das live Attribut aus
>>> options.js für den remote Kanal entfernt.
>>>
>>
>> Wenns drin ist soll das natürlich auch auf Demo funktionieren. Aber guter
>> Hinweis- da nicht kriegsentscheidend darf es keinen Fehler geben, ändere
>> ich.
>>
>>
>>> Jetzt bekomme ich derzeit keine Fehler, und es aktualisiert sich alle 2
>>> Sekunden der aktuelle Verbrauch und die Grafik - cool! Bisher getestet habe
>>> ich allerdings nur den Kanal El. Energie (Leistungswerte). Tests für
>>> Zählerstände und S0 kann ich noch nachliefern.
>>>
>>> Die Performance scheint derzeit nicht besonders stark beeinträchtigt zu
>>> werden, das ist bei meinem alten 256MB Pi auch wichtig ;-) Geniales
>>> Feature, man hat "Realtime"-Daten bei Bedarf und in der Datenbank wird
>>> weiterhin im AggIntervall geschrieben. Danke für Idee um Umsetzung!
>>>
>>
>> Danke für die Blumen.
>>
>>
>>> Btw, die Option "Automatisch aktualisieren" kann aus meiner Sicht auch
>>> default On sein, weiterhin abschaltbar fände ich allerdings gut.
>>>
>>
>> Warum eigentlich? Einfach nicht auf "jetzt" zoomen und schon gibts keine
>> Updates mehr.
>>
>>
>>> Eventuell zusammen mit dem Live-Update schaltbar?
>>>
>>
>> Lieber nicht- weniger Schalter sind "mehr".
>>
>>
>>>
>>> Gruß
>>> André
>>>
>>
>> Viele Grüße,
>> Andreas
>>
>>
>>>
>>>
>>>
>>> Andreas Goetz <cpuidle at gmail.com> schrieb am Di., 23. Juni 2015 um
>>> 13:16 Uhr:
>>>
>>>> 2015-06-23 13:11 GMT+02:00 Andre Bernemann <andre.bernemann at gmail.com>:
>>>>
>>>>> Hi,
>>>>>
>>>>> super Idee, teste ich gerne!
>>>>>
>>>>
>>>> Danke für den Test!
>>>>
>>>>
>>>>> Mir fehlt derzeit noch "Volkszaehler\Server\PushHub" um den push
>>>>> server zu starten. Fehlt das evtl. noch im PR oder bekomme ich es woanders
>>>>> her?
>>>>>
>>>>
>>>> Ups, und geich zeigt sich dass sich testen lohnt... Habs hinterher
>>>> geschoben (forced update, also im Zweifel git reset --hard).
>>>>
>>>>
>>>>>
>>>>> Gruß
>>>>> André
>>>>>
>>>>
>>>> Viele Grüße,
>>>> Andreas
>>>>
>>>>
>>>>>
>>>>> Andreas Goetz <cpuidle at gmail.com> schrieb am Mo., 22. Juni 2015 um
>>>>> 13:01 Uhr:
>>>>>
>>>>>> Hallo Zusammen,
>>>>>>
>>>>>> Matthias und ich haben vzlogger und Frontend um eine Möglichkeit
>>>>>> erweitert, Zählerwerte "live" zum Frontend zu pushen, in der Sekunde wo sie
>>>>>> anfallen. Der Witz an der Sache: die Werte müssen nicht gespeichert werden
>>>>>> so dass das Datenvolumen nicht anwächst.
>>>>>>
>>>>>> Im Frontend sieht das etwa so aus (in dem Fall schickt der Zähelr
>>>>>> schneller Messwerte als seine Auflösung hergibt, daher springt die Leistung
>>>>>> zwischen 0 und ca. 200W):
>>>>>>
>>>>>> [image: unbenannt]
>>>>>>
>>>>>> Bevor das in den Hauptzweig einfließen kann brauchen wir allerdings
>>>>>> Tester. Die entsprechenden PRs finden sich hier; PHP 5.4 ist Voraussetzung:
>>>>>>
>>>>>>   - https://github.com/volkszaehler/volkszaehler.org/pull/323
>>>>>>   - https://github.com/volkszaehler/vzlogger/pull/174
>>>>>>
>>>>>> Künftig ließen sich damit lustige neue Funktionen wie z.B. Tachos und
>>>>>> ähnliches realisieren.
>>>>>>
>>>>>> @Udo: wenn es mal rund läuft sollten wir das ins nächste Image auch
>>>>>> mit einbauen.
>>>>>> @Justin: und für demo wäre es natürlich auch nett.
>>>>>>
>>>>>> Viele Grüße,
>>>>>> Andreas & Matthias
>>>>>>
>>>>>> PS.: aktuell ist das zwar getestet aber nur für Experimentierfreunde
>>>>>> geeignet. Wenn ihr nicht wisst wie sich PRs mergen lassen ist das nicht für
>>>>>> Euch geeignet.
>>>>>>
>>>>>>
>>>>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20150715/8f77d417/attachment-0001.html>


More information about the volkszaehler-users mailing list