<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Looks good:<div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><a href="https://github.com/openvehicles/ovms-client-nodejs" class="">https://github.com/openvehicles/ovms-client-nodejs</a></div></blockquote><div class=""><div><br class=""></div><div>Regards, Mark</div><div><br class=""><blockquote type="cite" class=""><div class="">On 6 Aug 2022, at 6:12 PM, Michael Balzer <<a href="mailto:dexter@expeedo.de" class="">dexter@expeedo.de</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="content-isolator__container"><div class="protected-part"><div class="protected-title">Signed PGP part</div><div class="protected-content">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
<div class="">
I've added a PR to fix the usage example:
<a class="moz-txt-link-freetext" href="https://github.com/birkir/ovms-client/pull/14">https://github.com/birkir/ovms-client/pull/14</a><br class="">
<br class="">
Mark, I suggest adding a fork to the OVMS account.<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div class="moz-cite-prefix">Am 06.08.22 um 11:34 schrieb Michael
Balzer:<br class="">
</div>
<blockquote type="cite" cite="mid:86c745cb-a0c4-a54a-f1bc-fdf98117c26d@expeedo.de" class="">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class="">
Gregg,<br class="">
<br class="">
I've had a look at that module (<a href="https://github.com/birkir/ovms-client" target="_blank" class="moz-txt-link-freetext" moz-do-not-send="true">https://github.com/birkir/ovms-client</a>):
the example code is wrong. As you didn't post any of your actual
code, I can only assume you try to base your code on that example.<br class="">
<br class="">
First of all, the connect() call is running asynchronously, and
you must not send commands until the "connected" event has been
emitted.<br class="">
<br class="">
Second & more importantly for your command application, the
send() method does not work as shown in the example
("send('stat')"). You need to construct the actual MP command for
send.<br class="">
<br class="">
Third & finally, you need to subscribe to the
"commandReceived" event if you want to receive the results
(instead of parsing the "raw" messages yourself).<br class="">
<br class="">
Here's a complete working example code using that module sending
both a shell and a lock command:<br class="">
<blockquote class=""><font face="monospace" class="">const { OVMSClient } =
require('ovms-client');</font><br class="">
<br class="">
<font face="monospace" class="">// host, port, vehicle id, password</font><br class="">
<font face="monospace" class="">const client = new
OVMSClient('<a href="http://ovms.dexters-web.de" class="">ovms.dexters-web.de</a>', 6867, 'xxx', 'xxx');</font><br class="">
<br class="">
<font face="monospace" class="">// connect</font><br class="">
<font face="monospace" class="">client.connect();</font><br class="">
<br class="">
<font face="monospace" class="">// subscribe to command responses:</font><br class="">
<font face="monospace" class="">client.on('commandReceived', response
=> {</font><br class="">
<font face="monospace" class=""> let [ command, result, message ] =
response.split(',');</font><br class="">
<font face="monospace" class=""> console.log('*** response: command',
command, "result", result);</font><br class="">
<font face="monospace" class=""> if (message) {</font><br class="">
<font face="monospace" class=""> console.log(message.replace(/\r/g,
String.fromCharCode(10)));</font><br class="">
<font face="monospace" class=""> }</font><br class="">
<font face="monospace" class="">});</font><br class="">
<br class="">
<font face="monospace" class="">client.on('connected', callback => {</font><br class="">
<br class="">
<font face="monospace" class=""> // send shell command</font><br class="">
<font face="monospace" class=""> console.log('*** send command:
7,stat');</font><br class="">
<font face="monospace" class=""> client.send('7,stat');</font><br class="">
<br class="">
<font face="monospace" class=""> // send lock command (with PIN 1234)</font><br class="">
<font face="monospace" class=""> console.log('*** send command:
20,1234');</font><br class="">
<font face="monospace" class=""> client.send('20,1234');</font><br class="">
<br class="">
<font face="monospace" class="">});</font><br class="">
</blockquote>
<br class="">
Example run:<br class="">
<blockquote class=""><font face="monospace" class="">balzer@leela:~/ovms/nodejs>
DEBUG=* node test.js </font><br class="">
<font face="monospace" class=""> OVMS connected to socket +0ms</font><br class="">
<font face="monospace" class=""> OVMS Server authentication OK. +17ms</font><br class="">
<font face="monospace" class=""> OVMS RX: MP-S 0 gKmpSDl8krIShUcPcIYFHO
N6LiQqThPvJEUvvQV4f8Kg==</font><br class="">
<font face="monospace" class=""> +1ms</font><br class="">
<font face="monospace" class="">*** send command: 7,stat</font><br class="">
<font face="monospace" class="">*** send command: 20,1234</font><br class="">
<font face="monospace" class="">*** response: command 7 result 0</font><br class="">
<font face="monospace" class="">Not charging</font><br class="">
<font face="monospace" class="">SOC: -</font><br class="">
<font face="monospace" class="">Ideal range: 0km</font><br class="">
<font face="monospace" class="">CAC: 120.0Ah</font><br class="">
<br class="">
<font face="monospace" class="">*** response: command 20 result 1</font><br class="">
<font face="monospace" class="">^C</font><br class="">
</blockquote>
<br class="">
Note: command 20 returned "failed" (result 1) here, because the
test module on my bench cannot lock a car.<br class="">
<br class="">
This was the module log for that session:<br class="">
<blockquote class=""><font face="monospace" class="">I (2192998) ovms-server-v2:
Incoming Msg: MP-0 Z1</font><br class="">
<font face="monospace" class="">I (2192998) ovms-server-v2: One or more
peers have connected</font><br class="">
<font face="monospace" class="">I (2193008) ovms-server-v2: Incoming Msg:
MP-0 C7,stat</font><br class="">
<font face="monospace" class="">I (2193008) ovms-server-v2: Send MP-0
c7,0,Not charging|SOC: -|Ideal range: 0km|CAC: 120.0Ah</font><br class="">
<font face="monospace" class="">I (2193048) ovms-server-v2: Incoming Msg:
MP-0 C20,1234</font><br class="">
<font face="monospace" class="">I (2193048) v-vweup: CommandLock</font><br class="">
<font face="monospace" class="">I (2193048) ovms-server-v2: Send MP-0
c20,1</font><br class="">
</blockquote>
<br class="">
So the module is actually working nicely, it's just got a poor
usage example.<br class="">
<br class="">
Be aware the module does not yet support TLS encryption though,
you should add that before actually using it.<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div class="moz-cite-prefix">Am 04.08.22 um 06:05 schrieb gregg
hansen:<br class="">
</div>
<blockquote type="cite" cite="mid:CACunL1eaT_XUsZr7ZqtXZ5vGSdTDKGraEK0_1AHtH_W71J-Lvw@mail.gmail.com" class="">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8" class="">
<div dir="auto" class="">Just to be sure, we’ll set some time frames and
I’ll park the car</div>
<div class=""><br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Aug 3, 2022 at
11:03 PM Mark Webb-Johnson <<a href="mailto:mark@webb-johnson.net" moz-do-not-send="true" class="moz-txt-link-freetext">mark@webb-johnson.net</a>>
wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word;line-break:after-white-space" class="">Gregg,
<div class=""><br class="">
</div>
<div class="">I checked for August 2022, ET225567 I find
(redacted as necessary):</div>
<div class=""><br class="">
</div>
<blockquote style="margin:0 0 0
40px;border:none;padding:0px" class="">
<div class="">
<div class="">2022-08-04 03:34:52.589231 UTC info
OVMS::Server::ApiV2: #10 A ET225567 rx msg C 20,</div>
<div class="">2022-08-04 03:34:52.590298 UTC info
OVMS::Server::ApiV2: #10 A ET225567 cmd req for
ET225567 (queue now 10)</div>
<div class="">2022-08-04 03:34:52.590552 UTC info
OVMS::Server::ApiV2: #25 C ET225567 tx msg C 20,</div>
<div class="">2022-08-04 03:34:55.185066 UTC info
OVMS::Server::ApiV2: #25 C ET225567 rx msg c 20,0</div>
<div class="">2022-08-04 03:34:55.185657 UTC info
OVMS::Server::ApiV2: #25 C ET225567 cmd rsp to
#10 for ET225567 (queue now )</div>
<div class="">2022-08-04 03:34:55.185739 UTC info
OVMS::Server::ApiV2: #10 A ET225567 tx msg c 20,0</div>
</div>
</blockquote>
<div class="">
<div class=""><br class="">
</div>
<div class="">No way of knowing if that was from the app or the
library, but the message sequence is correct and the
command was acknowledged by the car as successfully
executed. Command #20 is ‘lock car’.</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark</div>
</div>
</div>
<div style="word-wrap:break-word;line-break:after-white-space" class="">
<div class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 4 Aug 2022, at 11:36 AM, gregg hansen <<a href="mailto:gregg@rabbitev.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">gregg@rabbitev.com</a>>
wrote:</div>
<br class="">
<div class="">
<div dir="auto" class="">If there is a better library to
try let me know. We tried a couple before we
landed on that one.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">We only test with one vehicle -
ET225567</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">This is my fleet vehicle, so
there’s a decent chance it will be in use.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">Tomorrow we’ll try some tests
and send some timestamps</div>
<div class=""><br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed,
Aug 3, 2022 at 10:31 PM Mark Webb-Johnson
<<a href="mailto:mark@webb-johnson.net" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">mark@webb-johnson.net</a>>
wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
<div style="word-wrap:break-word;line-break:after-white-space" class="">Gregg,
<div class=""><br class="">
</div>
<div class="">OK. That is clearer. At a glance,
the library seems ok, but I haven’t
worked with that one previously, or
even knew of it.</div>
<div class=""><br class="">
</div>
<div class="">Can you let me know a vehicle ID,
and UTC timestamp, of one of your
connections and attempted unlocks? I
can then check the server logs.</div>
<div class=""><br class="">
</div>
<div class="">Or let me know vehicle ID, try it
now, and I can monitor.</div>
<div class=""><br class="">
</div>
<div class="">Regards, Mark.</div>
</div>
<div style="word-wrap:break-word;line-break:after-white-space" class="">
<div class=""><br class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 4 Aug 2022, at 11:21 AM,
gregg hansen <<a href="mailto:gregg@rabbitev.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">gregg@rabbitev.com</a>>
wrote:</div>
<br class="">
<div class="">
<div class="">
<div dir="auto" class="">This is the
library we are using it
encrypt some data and use
the MP commands to call some
functionalities to the car
with this we retrieve some
data like the battery
status.<br class="">
</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">NPM Lib</div>
<div dir="auto" class=""><a href="https://www.npmjs.com/package/ovms-client?activeTab=readme" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://www.npmjs.com/package/ovms-client?activeTab=readme</a></div>
<div dir="auto" class="">Github</div>
<div dir="auto" class=""><a href="https://github.com/birkir/ovms-client" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/birkir/ovms-client</a></div>
<div dir="auto" class="">(in the Github
is an instruction that
explains how does the
library works)</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">It has a
function to send shell
commands like 'stat'
commands, but when we send a
command looks like the car
is receiving the command but
it seems like the car gets
the commands but does not
interact with it.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">There is other
function that allows us to
send raw data to the car
that is the MP commands, but
in this case when I send a
Raw command this don't
connect with the car and its
stock loading waiting for a
response that is never
returned.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">I have been
trying to make a script that
lets me connect to the car,
but I only could connect to
the ovms-server that let us
make the connection with the
car, but I can not set the
carId and password on that
socket to make the
connection to the car.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">We are using
OVMS v2 in the cars.</div>
<div dir="auto" class=""><br class="">
</div>
<div dir="auto" class="">Thanks for
your help and we are going
to be glad to read you
answers</div>
</div>
<div class=""><br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed,
Aug 3, 2022 at 10:07 PM
Mark Webb-Johnson <<a href="mailto:mark@webb-johnson.net" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">mark@webb-johnson.net</a>>
wrote:<br class="">
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div style="word-wrap:break-word;line-break:after-white-space" class="">Gregg,
<div class=""><br class="">
</div>
<div class="">We really need to
know exactly what he
is doing, and with
what protocols.</div>
<div class=""><br class="">
</div>
<div class="">From the way you
seem to describe it,
you:</div>
<div class=""><br class="">
</div>
<div class="">
<ol class="">
<li class="">Have a custom
app, in react
native</li>
<li class="">You have a
custom server, in
NodeJS</li>
<li class="">You presumably
have some custom
protocol/api
between your app
and server</li>
<li class="">Your NodeJS
server is talking
to the OVMS server
using your own
implementation of
v2 protocol</li>
</ol>
<div class=""><br class="">
</div>
<div class="">Is that correct?
If so, then #4 is
the only issue. The
V2 protocol is
fairly well
documented, here:</div>
<div class=""><br class="">
</div>
</div>
<blockquote style="margin:0 0 0
40px;border:none;padding:0px" class="">
<div class="">
<div class=""><a href="https://docs.openvehicles.com/en/latest/protocol_v2/index.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/protocol_v2/index.html</a></div>
</div>
</blockquote>
<div class="">
<div class=""><br class="">
</div>
<div class="">It is proprietary
and the initial
negotiation is
complicated, but if
you have established
the crypto
connection and
received the data,
then you have done
the hard part.
Issuing commands
should be easy.</div>
<div class=""><br class="">
</div>
<div class="">In v2 protocol,
locking/unlocking is
performed via the
“C” command.</div>
<div class=""><br class="">
</div>
<div class="">Probably easiest
to look at the
sample code in the
iOS or Android Apps
to see how that is
done. For iOS, see:</div>
<div class=""><br class="">
</div>
</div>
<blockquote style="margin:0 0 0
40px;border:none;padding:0px" class="">
<div class="">
<div class=""><a href="https://github.com/openvehicles/Open-Vehicle-iOS/blob/master/OpenVehicleApp/ovms/ovmsAppDelegate.m" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/openvehicles/Open-Vehicle-iOS/blob/master/OpenVehicleApp/ovms/ovmsAppDelegate.m</a></div>
</div>
<div class=""><br class="">
</div>
<div class="">(The commandIssue
method, and how it
is called)</div>
</blockquote>
<div class="">
<div class=""><br class="">
</div>
<div class="">Regards, Mark.</div>
</div>
</div>
<div style="word-wrap:break-word;line-break:after-white-space" class="">
<div class="">
<div class=""><br class="">
<blockquote type="cite" class="">
<div class="">On 3 Aug
2022, at 11:03
PM, gregg hansen
<<a href="mailto:gregg@rabbitev.com" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">gregg@rabbitev.com</a>>
wrote:</div>
<br class="">
<div class="">
<div dir="ltr" class="">Pablo
has not been
able to access
the list. He
is getting
authentication
errors, so
while he works
through that I
thought I
would answer
for him...
<div class=""><br class="">
</div>
<div class="">
<blockquote style="margin:0
0 0
40px;border:none;padding:0px" class="">
<div class="">"The MP
commands are
the raw data I
am trying to
send to the
car to open
and close the
car."</div>
<div class=""><br class="">
</div>
</blockquote>
<div class="">The
devices are
using the V2
server, so I
think fixed MP
commands make
the most
sense. Pablo
is trying to
figure out how
to make that
work, and so
far has not
been
successful.<br class="">
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
</div>
</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sun, Jul 31, 2022 at 2:26 AM 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 class="">
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div class=""> Pablo,<br class="">
<br class="">
a bit more
information on
how you
connect to the
car would be
helpful here.<br class="">
<br class="">
Arbitrary
remote shell
command
execution is
supported by
the module's
HTTP API
(/api/execute),
the module's
SSH server,
the "V2
protocol"
server via MP
command 7 and
any "V3"
(MQTT) server
via the
/client/command
topic scheme.
Plus there's a
secondary
(non-standard)
HTTP command
API available
on my server <a href="http://ovms.dexters-web.de/" target="_blank" moz-do-not-send="true" class="">ovms.dexters-web.de</a>
(public API of
my custom web
shell).<br class="">
<br class="">
Lock &
unlock are
also available
as fixed MP
commands
(20,22) on a
V2 server,
along with a
set of other
standard App
calls. These
do not run via
the shell but
translate to
direct
internal
execution.<br class="">
<br class="">
Command
execution has
not yet been
implemented
for the "V2"
server's HTTP
API. But you
can of course
implement that
if you use
that API.<br class="">
<br class="">
Docs:<br class="">
<ul class="">
<li class=""><a href="https://docs.openvehicles.com/en/latest/components/ovms_webserver/docs/index.html#authorization" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/components/ovms_webserver/docs/index.html#authorization</a></li>
<li class=""><a href="https://docs.openvehicles.com/en/latest/userguide/console.html#ssh-console" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/userguide/console.html#ssh-console</a><br class="">
</li>
<li class=""><a href="https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#execute-sms-command" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#execute-sms-command</a></li>
<ul class="">
<li class=""><a href="https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#lock-car" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#lock-car</a></li>
<li class=""><a href="https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#unlock-car" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#unlock-car</a></li>
</ul>
<li class=""><a href="http://lists.openvehicles.com/pipermail/ovmsdev/2018-July/012641.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/pipermail/ovmsdev/2018-July/012641.html</a><br class="">
</li>
<li class=""><a href="http://lists.openvehicles.com/pipermail/ovmsdev/2018-July/012696.html" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">http://lists.openvehicles.com/pipermail/ovmsdev/2018-July/012696.html</a></li>
<li class=""><a href="https://docs.openvehicles.com/en/latest/protocol_httpapi/requests.html#not-yet-implemented" target="_blank" moz-do-not-send="true" class="moz-txt-link-freetext">https://docs.openvehicles.com/en/latest/protocol_httpapi/requests.html#not-yet-implemented</a><br class="">
</li>
</ul>
Which one are
you referring
to?<br class="">
<br class="">
Regards,<br class="">
Michael<br class="">
<br class="">
<br class="">
<div class="">Am
29.07.22 um
19:28 schrieb
Pablo Cabrera:<br class="">
</div>
<blockquote type="cite" class="">
<div dir="ltr" class="">Hello
OVMS team, we
are currently
working with
an
implementation
with OVMS in a
react native
app with a
NodeJS
back-end.<br class="">
Currently we
can connect
with the cars
and rescue
some data like
the status of
the battery or
GPS location,
but now we
need to send
commands to
lock and
unlock the
cars from the
same app, when
we send a
command I get
a response
that the
command is
received in
the car, but
the command is
not executed
in the bash.<br class="">
<br class="">
I don't know
if you
can send me
more info
about how to
make the car
receive bash
commands from
remote
connections,
or how can I
send it from
the NodeJs
server into
the bash of
the car.<br class="">
<br class="">
Thanks for
your time and
help.<br class="">
</div>
<br class="">
<fieldset class=""></fieldset>
<pre class="">_______________________________________________
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 class="">
<pre cols="72" class="">--
Michael Balzer * <a href="https://www.google.com/maps/search/Helkenberger+Weg+9+*+D-58256+Ennepetal?entry=gmail&source=g" target="_blank" moz-do-not-send="true" class="">Helkenberger Weg 9 * D-58256 Ennepetal</a>
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
</div>
_______________________________________________<br class="">
OvmsDev
mailing list<br class="">
<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 class="">
<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 class="">
</blockquote>
</div>
<br clear="all" class="">
<div class=""><br class="">
</div>
-- <br class="">
<div dir="ltr" class="">
<div dir="ltr" class=""><img src="https://ci3.googleusercontent.com/mail-sig/AIorK4xhCuCRALYJ2mpc-mSdek6d5LGYFtTNIZrrh1CpRMbWGhgeniT02-ajiXN7LX_VkGeMmFGqc4s" moz-do-not-send="true" width="96" height="57" class=""><br class="">
<div class="">RabbitEV</div>
<div class="">Driving
Electric Cars</div>
<div class=""><a href="http://rabbitev.com/" target="_blank" moz-do-not-send="true" class="">RabbitEV.com</a></div>
</div>
</div>
_______________________________________________<br class="">
OvmsDev mailing
list<br class="">
<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 class="">
<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><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
_______________________________________________<br class="">
OvmsDev mailing list<br class="">
<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 class="">
<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 class="">
</blockquote>
</div>
</div>
_______________________________________________<br class="">
OvmsDev mailing list<br class="">
<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 class="">
<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><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
_______________________________________________<br class="">
OvmsDev mailing list<br class="">
<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 class="">
<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 class="">
</blockquote>
</div>
</div>
_______________________________________________<br class="">
OvmsDev mailing list<br class="">
<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 class="">
<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><br class="">
</div>
</blockquote>
</div>
<br class="">
</div>
</div>
_______________________________________________<br class="">
OvmsDev mailing list<br class="">
<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 class="">
<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 class="">
</blockquote>
</div>
</div>
<br class="">
<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 class="">
<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 class="">
<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 class="">
<pre class="moz-signature" cols="72">--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26</pre>
</div>
</div></div><br class=""><iframe class="content-isolator__isolated-content" sandbox="allow-scripts" scrolling="auto" width="200" height="10" style="border:none;display:block;overflow:auto;" data-src="data:text/html;charset=UTF-8;base64,PGlmcmFtZS1jb250ZW50IGRhdGEtaWZyYW1lLWhlaWdodD0idHJ1ZSI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188QlI+T3Ztc0RldiBtYWlsaW5nIGxpc3Q8QlI+T3Ztc0RldkBsaXN0cy5vcGVudmVoaWNsZXMuY29tPEJSPmh0dHA6Ly9saXN0cy5vcGVudmVoaWNsZXMuY29tL21haWxtYW4vbGlzdGluZm8vb3Ztc2RldjxCUj48L2lmcmFtZS1jb250ZW50Pg=="></iframe></div></div></blockquote></div><br class=""></div></body></html>