<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Another option: add another argument to 'GetValues()' to optionally
    modify the behaviour in this way.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 08.11.22 um 14:01 schrieb Michael
      Balzer:<br>
    </div>
    <blockquote type="cite"
      cite="mid:42dffec8-b310-2919-41d5-b40d0ac61182@expeedo.de">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      That's basically a good approach, but be aware 'IsDefined()' has
      an ambiguous meaning here, as with the API stem "OvmsMetrics" it
      would naturally be expected to mean "is this metric defined", not
      "does this metric have a defined value".<br>
      <br>
      An undefined metric currently can be derived from 'Values()'
      returning undefined, but that's more an undocumented side effect
      than intended.<br>
      <br>
      Maybe 'GetDefined()' could be a better name, leveraging this
      behaviour, i.e. returning 'undefined' for an actually undefined
      metric, and 'null' for a defined metric without a value.<br>
      <br>
      Regards,<br>
      Michael<br>
      <br>
      <br>
      <div class="moz-cite-prefix">Am 08.11.22 um 13:46 schrieb Michael
        Geddes:<br>
      </div>
      <blockquote type="cite"
cite="mid:CAH0p7uL-x=QV7KpyNWQK5rvjDizrY1ApPFv-4oAvp0BkmKWDug@mail.gmail.com">
        <meta http-equiv="content-type" content="text/html;
          charset=UTF-8">
        <div dir="ltr">
          <div>Ah yes. Arrays - will check those.  Yeah, how about we
            add a 'IsDefined' method to metrics instead of the null
            thing (it does sound like it will upset too many
            applecarts).</div>
          <div><br>
          </div>
          <div>//.</div>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">On Tue, 8 Nov 2022 at
              20:35, Michael Balzer <<a
                href="mailto:dexter@expeedo.de" moz-do-not-send="true"
                class="moz-txt-link-freetext">dexter@expeedo.de</a>>
              wrote:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div> Michael,<br>
                <br>
                looks all good to me, once again nice find with the
                decode argument. Adding decode to the Value() call was
                only for symmetry IIRC, the main use was with
                GetValues() (<a
href="https://docs.openvehicles.com/en/latest/userguide/scripting.html#ovmsmetrics"
                  target="_blank" moz-do-not-send="true"
                  class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/userguide/scripting.html#ovmsmetrics</a>).<br>
                <br>
                Don't forget to test arrays, e.g. "v.t.pressure" &
                "v.t.temp".<br>
                <br>
                Returning null for an undefined metric seems like a
                natural choice, but is a rather deep change, as for
                consistency not only the Duktape metrics API but also
                the Web UI metrics API would need to be changed
                accordingly. Unless you've got a real use case that
                needs that, we should be careful.<br>
                <br>
                Regards,<br>
                Michael<br>
                <br>
                <br>
                <div>Am 07.11.22 um 15:00 schrieb Michael Geddes:<br>
                </div>
                <blockquote type="cite">
                  <div dir="ltr">
                    <div dir="ltr">I have figured out a bunch of stuff
                      and have implemented the following: (having done
                      away with needing AsFloatUnit)
                      <div><br>
                      </div>
                      <div>OvmsMetrics.Value( {metric} [, {decode}])</div>
                      <div>OvmsMetrics.Value( {metric}, {unit}
                        [,{decode}])</div>
                      <div><br>
                      </div>
                      <div>It turns out that the [decode] flag wasn't
                        working anyway (since the function was being
                        registered as only having 1 param)...</div>
                      <div>This way it is still really 1 function.. but
                        I check it the second parameter is a 'boolean',
                        and if not.. try the second form. </div>
                      <div><br>
                      </div>
                      <div>OvmsMetrics.AsFloat( {metric} [,{unit}] )</div>
                      <div><br>
                      </div>
                      <div>and add the function</div>
                      <div><br>
                      </div>
                      <div>Ovms.Metrics.ValueUnit( {metric} [,{unit}]) </div>
                      <div>This prints the value and the unit.</div>
                      <div><br>
                      </div>
                      <div>Here's a sample function and the output! This
                        also shows the types of the output.</div>
                      <div><br>
                      </div>
                      <div><font face="monospace">(function() {<br>
                             x =
                          OvmsMetrics.Value("xiq.v.trip.consumption");<br>
                             print( (typeof x) + ": "+  x+"\n"  );<br>
                             x =
                          OvmsMetrics.Value("xiq.v.trip.consumption",
                          false);<br>
                             print( (typeof x) + ": "+  x +"\n" );<br>
                             x =
                           OvmsMetrics.Value("xiq.v.trip.consumption","kmpkwh")<br>
                             print( (typeof x) + ": "+ x +"\n");<br>
                             x =
                           OvmsMetrics.Value("xiq.v.trip.consumption",
                          "mipkwh", false) <br>
                             print( (typeof x) + ": "+ x +"\n");<br>
                             x =
                           OvmsMetrics.ValueUnit("xiq.v.trip.consumption")<br>
                             print( (typeof x) + ": "+ x +"\n");<br>
                             x =
                           OvmsMetrics.ValueUnit("xiq.v.trip.consumption","mipkwh")<br>
                             print( (typeof x) + ": "+ x +"\n");<br>
                             x =
                           OvmsMetrics.AsFloat("xiq.v.trip.consumption")<br>
                             print( (typeof x) + ": "+ x +"\n");<br>
                             x =
                           OvmsMetrics.AsFloat("xiq.v.trip.consumption","kmpkwh")<br>
                             print( (typeof x) + ": "+ x +"\n");<br>
                          })();</font><br>
                      </div>
                      <div><br>
                      </div>
                      <div>
                        <pre id="m_-2249740601380801512gmail-output" style="box-sizing:border-box;overflow:auto;font-family:ui-monospace,"Cascadia Mono","Segoe UI Mono",Hack,"Source Code Pro","Roboto Mono",Menlo,Monaco,Consolas,monospace;font-size:13px;padding:9.5px;margin-top:0px;margin-bottom:10px;line-height:1.42857;color:rgb(0,34,0);word-break:break-all;background-color:rgb(245,245,245);border:1px solid rgb(204,204,204);border-radius:4px;height:165px;white-space:pre-wrap">number: 17.0582
string: 17.0582
number: 5.86227
string: 3.64264
string: 17.0582kWh/100km
string: 3.64264mi/kWh
number: 17.0582
number: 5.86227</pre>
                      </div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                      <div>It still might be an idea to use 'null' as a
                        return value if the metrics is<font
                          face="monospace"> !IsDefined() </font><font
                          face="arial, sans-serif">but that would be
                          changing the existing behaviour slightly.</font></div>
                      <div><font face="arial, sans-serif"><br>
                        </font></div>
                      <div><font face="arial, sans-serif">//.ichael</font></div>
                      <div><br>
                      </div>
                    </div>
                    <div class="gmail_quote">
                      <div dir="ltr" class="gmail_attr">On Mon, 7 Nov
                        2022 at 08:12, Michael Geddes <<a
                          href="mailto:frog@bunyip.wheelycreek.net"
                          target="_blank" moz-do-not-send="true"
                          class="moz-txt-link-freetext">frog@bunyip.wheelycreek.net</a>>
                        wrote:<br>
                      </div>
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">
                        <div dir="ltr">I've worked out what the decode
                          flag is for and how it works, and I think how
                          optional params work. <br>
                          <div>I'm pretty sure I won't  need the
                            'AsFloatUnit' function; the unit would be an
                            option to AsFloat(); I'll know that soon.</div>
                          <div><br>
                          </div>
                          <div>The 'Value' function is more complicated
                            because of the optional decode bool. I guess
                            I could add the Unit to the end of that.</div>
                          <div><br>
                          </div>
                          <div>ValueUnit could be still useful then to
                            provide a 'Value + Unit'.</div>
                          <div><br>
                          </div>
                          <div>Question:  Is there a reason we shouldn't
                            be returning with  <span style="color:rgb(220,220,170);background-color:rgb(30,30,30);font-family:Consolas,"Courier New",monospace;font-size:14px;white-space:pre-wrap">duk_push_null</span> 
                              if the metric !IsDefined()  in both
                            AsFloat() and Value(metric,true) cases?</div>
                          <div><br>
                          </div>
                          <div>//.ichael</div>
                        </div>
                        <br>
                        <div class="gmail_quote">
                          <div dir="ltr" class="gmail_attr">On Sun, 6
                            Nov 2022 at 11:22, Michael Geddes <<a
                              href="mailto:frog@bunyip.wheelycreek.net"
                              target="_blank" moz-do-not-send="true"
                              class="moz-txt-link-freetext">frog@bunyip.wheelycreek.net</a>>
                            wrote:<br>
                          </div>
                          <blockquote class="gmail_quote"
                            style="margin:0px 0px 0px
                            0.8ex;border-left:1px solid
                            rgb(204,204,204);padding-left:1ex">
                            <div dir="ltr">
                              <div>Right, so I've implemented some stuff
                                that seems to work quite well. <br>
                              </div>
                              <div><br>
                              </div>
                              <div><a
href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/pull/764"
                                  target="_blank" moz-do-not-send="true"
                                  class="moz-txt-link-freetext">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/pull/764</a> 
                                should be ready now after a couple of
                                stupid mistakes slipped through.   This
                                absolutely needs somebody to review it
                                please! (There's a reason why I've
                                converted some if()'s to switch() -
                                which is that it will be used in the
                                follow-up commit).</div>
                              <div><br>
                              </div>
                              <div>The commit that will follow on from
                                that it implements the new Units:
                                kWh/100km, km/kWh  and  mi/kWh.</div>
                              <div><br>
                              </div>
                              <div>This is a summary of what I've
                                implemented for scripting - including
                                showing the unit codes I have so far. 
                                I've considered a few things:</div>
                              <div>  * Should some of the longer unit
                                codes be shortened  (eg mi, mins, m, ft,
                                deg, perc)</div>
                              <div>  * The unit codes could be much more
                                re<font face="arial, sans-serif">gular
                                  and separated by dots  eg:  </font></div>
                              <div><font face="arial, sans-serif">     
                                    watthours -> w.h</font></div>
                              <div><font face="arial, sans-serif">     
                                    kwhp100km -> kw.h_100km or
                                  kw.h/100km</font></div>
                              <div><font face="arial, sans-serif">     
                                    miph ->  mi_h or mi/h  (or should
                                  it be mph).</font></div>
                              <div><font face="arial, sans-serif">     
                                    psi -> <a href="http://p_in.in"
                                    target="_blank"
                                    moz-do-not-send="true">p_in.in</a>
                                  or p/<a href="http://in.in"
                                    target="_blank"
                                    moz-do-not-send="true">in.in</a> or
                                  <a href="http://lb_in.in"
                                    target="_blank"
                                    moz-do-not-send="true">lb_in.in</a>
                                  (yes, slightly weird, but predictable)</font></div>
                              <div><font face="arial, sans-serif"> </font><br>
                              </div>
                              <b style="font-family:monospace">OVMS#
                                metric units</b><br>
                              <font face="monospace">          km : km</font><br>
                              <font face="monospace">       miles : M</font><br>
                              <font face="monospace">      meters : m</font><br>
                              <font face="monospace">        feet : ft</font><br>
                              <font face="monospace">     celcius : °C</font><br>
                              <font face="monospace">  fahrenheit : °F</font><br>
                              <font face="monospace">         kpa : kPa</font><br>
                              <font face="monospace">          pa : Pa</font><br>
                              <font face="monospace">         psi : psi</font><br>
                              <font face="monospace">       volts : V</font><br>
                              <font face="monospace">        amps : A</font><br>
                              <font face="monospace">    </font>amphours<font
                                face="monospace"> : Ah</font><br>
                              <font face="monospace">          kw : kW</font><br>
                              <font face="monospace">         kwh : kWh</font><br>
                              <font face="monospace">       watts : W</font><br>
                              <font face="monospace">   </font>watthours<font
                                face="monospace"> : Wh</font><br>
                              <font face="monospace">     seconds : Sec</font><br>
                              <font face="monospace">     minutes : Min
                              </font><br>
                              <font face="monospace">       hours : Hour</font><br>
                              <font face="monospace">         utc : UTC</font><br>
                              <font face="monospace">     degrees : °</font><br>
                              <font face="monospace">        kmph : km/h</font><br>
                              <font face="monospace">        </font>miph<font
                                face="monospace"> : Mph</font><br>
                              <font face="monospace">      </font>kmphps<font
                                face="monospace"> : km/h/s</font><br>
                              <font face="monospace">      </font>miphps<font
                                face="monospace"> : Mph/s</font><br>
                              <font face="monospace">        mpss : m/s²</font><br>
                              <font face="monospace">         dbm : dBm</font><br>
                              <font face="monospace">          sq : sq</font><br>
                              <font face="monospace">     percent : %</font><br>
                              <font face="monospace">       whpkm :
                                Wh/km</font><br>
                              <font face="monospace">       </font>whpmi<font
                                face="monospace"> : Wh/mi</font><br>
                              <font face="monospace">   kwhp100km :
                                kWh/100km</font><br>
                              <font face="monospace">      </font>kmpkwh<font
                                face="monospace"> : km/kWh</font><br>
                              <font face="monospace">      </font>mipkwh<font
                                face="monospace"> : mi/kWh</font><br>
                              <font face="monospace">          nm : Nm</font><br>
                              <font face="monospace"><br>
                                <b>OVMS# metric unit mi</b><br>
                                       miles : M<br>
                                     minutes : Min<br>
                                        miph : Mph<br>
                                      miphps : Mph/s<br>
                                       whpmi : Wh/mi<br>
                                      mipkwh : mi/kWh</font><br>
                              <br>
                              <b style="font-family:monospace">OVMS#
                                metric get xiq.v.trip.consumption<br>
                              </b><font face="monospace">17.0597kWh/100km</font><br>
                              <b style="font-family:monospace">OVMS#
                                metric get xiq.v.trip.consumption kpkwh<br>
                              </b><font face="monospace">5.86177km/kWh</font><br>
                              <b style="font-family:monospace">OVMS#
                                metric get xiq.v.trip.consumption mpkwh<br>
                              </b><font face="monospace">3.64233mi/kWh</font><br>
                              <br>
                              <b style="font-family:monospace">OVMS#
                                metric set xiq.c.speed 5 miph<br>
                              </b><font face="monospace">Metric set</font><br>
                              <b style="font-family:monospace">OVMS#
                                metric get xiq.c.speed<br>
                              </b><font face="monospace">8.04673km/h</font><br>
                              <b style="font-family:monospace">OVMS#
                                metric get xiq.c.speed miph<br>
                              </b><font face="monospace">5Mph</font><br>
                              <br>
                              <font face="arial, sans-serif">And then in
                                DukTape - there are some questions I
                                have about the implementation:</font>
                              <div><font face="arial, sans-serif">*
                                  Names of functions? Better ideas? </font></div>
                              <div><font face="arial, sans-serif">*
                                  Should ValueUnit output the units?</font></div>
                              <div><font face="arial, sans-serif">* In
                                  Value() there is the line  </font> 
                                bool decode = duk_opt_boolean(ctx, 1,
                                true);</div>
                              <div>    * What does 'decode' mean here?</div>
                              <div>    * Do I need it for ValueUnit() ?</div>
                              <div><br>
                                <div><b><br>
                                    <font face="monospace">(function() {</font><br>
                                    <font face="monospace">   print(
                                      OvmsMetrics.Value("xiq.v.trip.consumption"));</font><br>
                                    <font face="monospace"> 
                                       print("\n")</font><br>
                                    <font face="monospace">   print(
                                      OvmsMetrics.ValueUnit("xiq.v.trip.consumption",""));</font><br>
                                    <font face="monospace"> 
                                       print("\n")</font><br>
                                    <font face="monospace">   print(
                                      OvmsMetrics.ValueUnit("xiq.v.trip.consumption","</font>mipkwh<font
                                      face="monospace">"));</font><br>
                                    <font face="monospace"> 
                                       print("\n")</font><br>
                                    <br>
                                    <font face="monospace">   print(
                                      OvmsMetrics.AsFloatUnit("xiq.v.trip.consumption","</font>kmpkwh<font
                                      face="monospace">"));</font><br>
                                    <font face="monospace">})();</font></b><br>
                                  <font face="monospace">--- Output ---</font><br>
                                  <font face="monospace">17.0597</font><br>
                                  <font face="monospace">17.0597kWh/100km</font><br>
                                  <font face="monospace">3.64233mi/kWh</font><br>
                                  <font face="monospace">5.86177</font><br>
                                  <font face="monospace">------</font><br>
                                  <br>
                                </div>
                              </div>
                              <div>The basic stuff all works - it's just
                                quibbling over the details.. but let's
                                get them right!</div>
                              <div><br>
                              </div>
                              <div>//.ichael</div>
                            </div>
                            <br>
                            <div class="gmail_quote">
                              <div dir="ltr" class="gmail_attr">On Sat,
                                5 Nov 2022 at 20:09, Michael Geddes <<a
href="mailto:frog@bunyip.wheelycreek.net" target="_blank"
                                  moz-do-not-send="true"
                                  class="moz-txt-link-freetext">frog@bunyip.wheelycreek.net</a>>
                                wrote:<br>
                              </div>
                              <blockquote class="gmail_quote"
                                style="margin:0px 0px 0px
                                0.8ex;border-left:1px solid
                                rgb(204,204,204);padding-left:1ex">
                                <div dir="ltr">
                                  <div>Yeah - this was copied code from
                                    kia/kona and is what triggered these
                                    ideas; I totally agree this
                                    shouldn't be doubled up on.</div>
                                  <div><br>
                                  </div>
                                  <div>I've got some commits centred
                                    round Metrics that I'll just check
                                    over and push up ... and then I'll
                                    just have the single <span
                                      style="font-family:monospace">xiq.v.</span><span
                                      style="font-family:monospace">trip.consumption </span>metric
                                    (unless you have some ideas for the
                                    namespace) which will be much
                                    neater.</div>
                                  <div><br>
                                  </div>
                                  <div>If it's ok with you then I might
                                    do that unit conversion proposal.</div>
                                  <div>Would it ok if the unit
                                    specifications were the same as to
                                    the programatic codes in
                                    ovms_metrics.h?</div>
                                  <div>(kWh,   WattHours , MetersPSS ) </div>
                                  <div>I would probably add a command</div>
                                  <div><font face="monospace">metric
                                      units</font> <spec> <br>
                                  </div>
                                  <div>to list all (matching) units and
                                    their associated Labels.</div>
                                  <div><br>
                                  </div>
                                  <div>//.ichael </div>
                                  <div><br>
                                  </div>
                                  <div class="gmail_quote">
                                    <div dir="ltr" class="gmail_attr">On
                                      Sat, 5 Nov 2022 at 18:48, Michael
                                      Balzer <<a
                                        href="mailto:dexter@expeedo.de"
                                        target="_blank"
                                        moz-do-not-send="true"
                                        class="moz-txt-link-freetext">dexter@expeedo.de</a>>
                                      wrote:<br>
                                    </div>
                                    <blockquote class="gmail_quote"
                                      style="margin:0px 0px 0px
                                      0.8ex;border-left:1px solid
                                      rgb(204,204,204);padding-left:1ex">
                                      <div> Michael,<br>
                                        <br>
                                        adding unit conversion support
                                        to the shell and Duktape
                                        commands is a good idea.<br>
                                        <br>
                                        Metrics are not meant to provide
                                        a user interface, they should be
                                        defined to be efficient and
                                        non-redundant.<br>
                                        <br>
                                        Btw, metrics names also shall
                                        not use upper case characters,
                                        and shall only use "." as a
                                        separator.<br>
                                        <br>
                                        Regards,<br>
                                        Michael<br>
                                        <br>
                                        <br>
                                        <div>Am 05.11.22 um 11:22
                                          schrieb Michael Geddes:<br>
                                        </div>
                                        <blockquote type="cite">
                                          <div dir="ltr">Hi all,<br>
                                            <div>Some of the code I
                                              copied from Kona/Kia code
                                              had both kwh/100km and
                                              km/kwh metrics in the code
                                              as 'Other'. </div>
                                            <div>Adding the various
                                              power consumption Units is
                                              not particularly hard (I
                                              will have a pull-request
                                              soon) - though the
                                              conversions between them
                                              all required some thought!</div>
                                            <div>... but it also made me
                                              think these two metrics
                                              that are (with the
                                              consumption units added)
                                              defined like this:  </div>
                                            <div><font face="monospace">m_v_trip_consumption1
                                                =
                                                MyMetrics.InitFloat("xiq.v.trip.consumption.KWh/100km",
                                                10, 0, kWHP100K);<br>
                                                m_v_trip_consumption2 =
                                                MyMetrics.InitFloat("<a
href="http://xiq.v.trip.consumption.km/kWh" target="_blank"
                                                  moz-do-not-send="true">xiq.v.trip.consumption.km/kWh</a>",
                                                10, 0, kPkWH);<br>
                                              </font></div>
                                            <div><br>
                                            </div>
                                            <div>These are effectively
                                              the same metric but in
                                              different units!</div>
                                            <div>I'm wondering if we
                                              would be better to have
                                              scripting and Duktape
                                              support for converting
                                              metrics to different
                                              unit!  This might be also
                                              quite useful for those
                                              strange countries that
                                              insist on using miles as a
                                              measurement.</div>
                                            <div><br>
                                            </div>
                                            <div>On top of the 'metric
                                              list' and 'metric set' we
                                              could add a 'metric get'
                                              which gets a single
                                              value.. and add unit
                                              support for get/set.</div>
                                            <div><br>
                                            </div>
                                            <div>I've also got a pull
                                              request that improves the
                                              precision of the
                                              km<->mi conversions
                                              and factors it out.</div>
                                            <div><br>
                                            </div>
                                            <div>//.ichael</div>
                                          </div>
                                          <br>
                                          <fieldset></fieldset>
                                          <pre>_______________________________________________
OvmsDev mailing list
<a href="mailto:OvmsDev@lists.openvehicles.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a>
<a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                                        </blockquote>
                                        <br>
                                        <pre cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
                                      </div>
_______________________________________________<br>
                                      OvmsDev mailing list<br>
                                      <a
                                        href="mailto:OvmsDev@lists.openvehicles.com"
                                        target="_blank"
                                        moz-do-not-send="true"
                                        class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a><br>
                                      <a
                                        href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
                                        rel="noreferrer" target="_blank"
                                        moz-do-not-send="true"
                                        class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
                                    </blockquote>
                                  </div>
                                </div>
                              </blockquote>
                            </div>
                          </blockquote>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                  <br>
                  <fieldset></fieldset>
                  <pre>_______________________________________________
OvmsDev mailing list
<a href="mailto:OvmsDev@lists.openvehicles.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a>
<a href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
                </blockquote>
                <br>
                <pre cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
              </div>
              _______________________________________________<br>
              OvmsDev mailing list<br>
              <a href="mailto:OvmsDev@lists.openvehicles.com"
                target="_blank" moz-do-not-send="true"
                class="moz-txt-link-freetext">OvmsDev@lists.openvehicles.com</a><br>
              <a
                href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev"
                rel="noreferrer" target="_blank" moz-do-not-send="true"
                class="moz-txt-link-freetext">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a><br>
            </blockquote>
          </div>
        </div>
        <br>
        <fieldset class="moz-mime-attachment-header"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:OvmsDev@lists.openvehicles.com" moz-do-not-send="true">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev" moz-do-not-send="true">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
      </blockquote>
      <br>
      <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
OvmsDev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OvmsDev@lists.openvehicles.com">OvmsDev@lists.openvehicles.com</a>
<a class="moz-txt-link-freetext" href="http://lists.openvehicles.com/mailman/listinfo/ovmsdev">http://lists.openvehicles.com/mailman/listinfo/ovmsdev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
  </body>
</html>