[Ovmsdev] Fwd: How does TPMS work now?

Michael Balzer dexter at expeedo.de
Wed Jan 27 05:59:12 HKT 2021


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 at expeedo.de>
>>>>> An:     ovmsdev at 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 at 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 at lists.openvehicles.com
>>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>>>
>>>> _______________________________________________
>>>> OvmsDev mailing list
>>>> OvmsDev at lists.openvehicles.com
>>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>
>>>
>>> _______________________________________________
>>> OvmsDev mailing list
>>> OvmsDev at lists.openvehicles.com
>>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>>>
>> _______________________________________________
>> OvmsDev mailing list
>> OvmsDev at lists.openvehicles.com
>> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at 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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20210126/948534ed/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 203 bytes
Desc: OpenPGP digital signature
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20210126/948534ed/attachment-0001.sig>


More information about the OvmsDev mailing list