I've created a simple metric table example -- and found an old bug in the update code by doing so :-) IOW, update before trying the example: https://docs.openvehicles.com/en/latest/components/ovms_webserver/docs/metri... Regards, Michael Am 25.01.21 um 23:11 schrieb Michael Balzer:
sharkcow,
the "number" metric widget cannot handle vectors currently. The "chart" and "table" widgets can, but need a little bit more initialization work (see examples … a simple table example may still be missing, I can create one if needed).
You can also register an event handler for "msg:metrics" and fill your fields directly. Or extend the "metric number" widget to support vector metrics.
A bar chart would visualize the relative tyre states nicely. You could set the wheel names as category (X axis) labels and add the alerts as a second series or colorize the bars by it (as I do with the BMS chart).
Regards, Michael
Am 25.01.21 um 22:34 schrieb sharkcow:
Michael,
thanks for your extensive response.
Regarding the WebPlugin, I seem to be lost... I just get the ol' question mark if I use this:
<div class="metric number" data-metric=metrics["v.t.health"][0]> <span class="label">Tyre Health FL</span> <span class="value">?</span> <span class="unit"></span> </div>
Tried all sorts of combinations with the quotes too... in the shell the metric is valid: v.t.health 97.2549,97.2549,100,97.2549%
What am I missing?
Thanks!
sharkcow
Am 25.01.21 um 12:59 schrieb Michael Balzer:
sharkcow,
the metrics shell command currently only supports getting & setting full values, i.e. all values at once on a vector metric.
Workaround: use Javascript:
sc ev 'm="v.t.health"; v=OvmsMetrics.Value(m); v[2]=80; OvmsCommand.Exec("met set "+m+" "+v);'
Not very handy that way. You can define a function for that in your ovmsmain.js:
function metricSetElem(metric, index, value) { vector = OvmsMetrics.Value(metric); vector[index] = value; OvmsCommand.Exec("metric set " + metric + " " + vector); }
…and then call it like this:
sc ev 'metricSetElem("v.t.health", 2, 80)'
Or you could add support to address single vector elements to the "metric" command.
OTOH, setting a metric manually is normally only needed during development though, so you already have artificial test values, why not simply set the whole vector?
Regarding reading vector metrics in a web plugin, that's straight forward: the vector is stored as an array in the global metrics object. Addressing elements is as simple as…
metrics["v.t.health"][2]
…and of course you can do everything you normally can do with an array.
Setting metric values from the web UI isn't a standard operation, so you need to call the "metrics" command for that here as well, e.g. via loadcmd().
Regards, Michael
Am 25.01.21 um 09:07 schrieb sharkcow:
Hello all,
probably this is a stupid question, but can I set/read individual elements of an array on the command line? More importantly, is there a way to access individual elements in WebPlugins (I know I could write a script, but that seems to be overkill and I'd first have to find out exactly how to do it :-/)
Thanks!
sharkcow
Am 23.01.21 um 18:22 schrieb Michael Balzer:
It seems the list server still has issues:
-------- Weitergeleitete Nachricht -------- Betreff: Re: [Ovmsdev] How does TPMS work now? Datum: Mon, 18 Jan 2021 07:54:31 +0100 Von: Michael Balzer <dexter@expeedo.de> An: ovmsdev@lists.openvehicles.com
Craig,
vector metrics can (as all metrics btw) be set by their string representation, i.e.
metrics set v.t.pressure 210.29,210.29,210.29,210.29
…and all TPMS metrics (also the new ones) are persistent now, see my post "extended metrics persistence".
Regarding the sensor sets, I haven't used them yet, and documentation is lacking, so you need to check the source.
Regards, Michael
Am 18.01.21 um 04:11 schrieb Craig Leres:
It used to be possible to manually set tire pressure with:
metrics set v.tp.fl.p 210.29 metrics set v.tp.fr.p 210.29 metrics set v.tp.rl.p 210.29 metrics set v.tp.rr.p 210.29
but after upgrading to the latest persistent metrics code I see these are all gone.
I looked at the tpms command but it seems to be designed to track different sets of tpms sensor id numbers.
Is it possible to set these from the command line? Are tpms tire pressures (and temperatures) still persistent across warm reboots? Is my problem that these are stored in vectors now and there is not yet a way to manipulate them from the command line?
Craig _______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.openvehicles.com http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-- Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal Fon 02333 / 833 5735 * Handy 0176 / 206 989 26