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/metrics.html#vector-tables
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