[Ovmsdev] OvmsDev Digest, Vol 127, Issue 7

Pablo Cabrera pablo.cabrera at alluxi.com
Wed Aug 10 22:58:48 HKT 2022


Hello Michael

Thank you for the PR and the fix on the example, it was the reason of why
We weren't able to send commands to the car, now with the example I
understand the doc page of the commands and understand how to know if the
command apply in to the car, now with this is just about to make an api for
the react native app, just one more question how secure is to use
"7,command" for an implementation?

Thank you so much for your help!

On Sat, Aug 6, 2022 at 5:13 AM <ovmsdev-request at lists.openvehicles.com>
wrote:

> Send OvmsDev mailing list submissions to
>         ovmsdev at lists.openvehicles.com
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> or, via email, send a message with subject or body 'help' to
>         ovmsdev-request at lists.openvehicles.com
>
> You can reach the person managing the list at
>         ovmsdev-owner at lists.openvehicles.com
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of OvmsDev digest..."
>
>
> Today's Topics:
>
>    1. Re: Doubs in implementation with nodejs. (Michael Balzer)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sat, 6 Aug 2022 12:12:51 +0200
> From: Michael Balzer <dexter at expeedo.de>
> To: ovmsdev at lists.openvehicles.com
> Subject: Re: [Ovmsdev] Doubs in implementation with nodejs.
> Message-ID: <59110efb-32c6-830f-dea0-176f59d6ba6e at expeedo.de>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> I've added a PR to fix the usage example:
> https://github.com/birkir/ovms-client/pull/14
>
> Mark, I suggest adding a fork to the OVMS account.
>
> Regards,
> Michael
>
>
> Am 06.08.22 um 11:34 schrieb Michael Balzer:
> > Gregg,
> >
> > I've had a look at that module
> > (https://github.com/birkir/ovms-client): 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.
> >
> > First of all, the connect() call is running asynchronously, and you
> > must not send commands until the "connected" event has been emitted.
> >
> > 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.
> >
> > Third & finally, you need to subscribe to the "commandReceived" event
> > if you want to receive the results (instead of parsing the "raw"
> > messages yourself).
> >
> > Here's a complete working example code using that module sending both
> > a shell and a lock command:
> >
> >     const { OVMSClient } = require('ovms-client');
> >
> >     // host, port, vehicle id, password
> >     const client = new OVMSClient('ovms.dexters-web.de', 6867, 'xxx',
> >     'xxx');
> >
> >     // connect
> >     client.connect();
> >
> >     // subscribe to command responses:
> >     client.on('commandReceived', response => {
> >     ? let [ command, result, message ] = response.split(',');
> >     ? console.log('*** response: command', command, "result", result);
> >     ? if (message) {
> >     ??? console.log(message.replace(/\r/g, String.fromCharCode(10)));
> >     ? }
> >     });
> >
> >     client.on('connected', callback => {
> >
> >     ? // send shell command
> >     ? console.log('*** send command: 7,stat');
> >     ? client.send('7,stat');
> >
> >     ? // send lock command (with PIN 1234)
> >     ? console.log('*** send command: 20,1234');
> >     ? client.send('20,1234');
> >
> >     });
> >
> >
> > Example run:
> >
> >     balzer at leela:~/ovms/nodejs> DEBUG=* node test.js
> >     ? OVMS connected to socket +0ms
> >     ? OVMS Server authentication OK. +17ms
> >     ? OVMS RX: MP-S 0 gKmpSDl8krIShUcPcIYFHO N6LiQqThPvJEUvvQV4f8Kg==
> >     ?+1ms
> >     *** send command: 7,stat
> >     *** send command: 20,1234
> >     *** response: command 7 result 0
> >     Not charging
> >     SOC: -
> >     Ideal range: 0km
> >     CAC: 120.0Ah
> >
> >     *** response: command 20 result 1
> >     ^C
> >
> >
> > Note: command 20 returned "failed" (result 1) here, because the test
> > module on my bench cannot lock a car.
> >
> > This was the module log for that session:
> >
> >     I (2192998) ovms-server-v2: Incoming Msg: MP-0 Z1
> >     I (2192998) ovms-server-v2: One or more peers have connected
> >     I (2193008) ovms-server-v2: Incoming Msg: MP-0 C7,stat
> >     I (2193008) ovms-server-v2: Send MP-0 c7,0,Not charging|SOC:
> >     -|Ideal range: 0km|CAC: 120.0Ah
> >     I (2193048) ovms-server-v2: Incoming Msg: MP-0 C20,1234
> >     I (2193048) v-vweup: CommandLock
> >     I (2193048) ovms-server-v2: Send MP-0 c20,1
> >
> >
> > So the module is actually working nicely, it's just got a poor usage
> > example.
> >
> > Be aware the module does not yet support TLS encryption though, you
> > should add that before actually using it.
> >
> > Regards,
> > Michael
> >
> >
> > Am 04.08.22 um 06:05 schrieb gregg hansen:
> >> Just to be sure, we?ll set some time frames and I?ll park the car
> >>
> >> On Wed, Aug 3, 2022 at 11:03 PM Mark Webb-Johnson
> >> <mark at webb-johnson.net> wrote:
> >>
> >>     Gregg,
> >>
> >>     I checked for August 2022, ET225567 I find (redacted as necessary):
> >>
> >>         2022-08-04 03:34:52.589231 UTC info ?OVMS::Server::ApiV2: #10
> >>         A ET225567 rx msg C 20,
> >>         2022-08-04 03:34:52.590298 UTC info ?OVMS::Server::ApiV2: #10
> >>         A ET225567 cmd req for ET225567 (queue now 10)
> >>         2022-08-04 03:34:52.590552 UTC info ?OVMS::Server::ApiV2: #25
> >>         C ET225567 tx msg C 20,
> >>         2022-08-04 03:34:55.185066 UTC info ?OVMS::Server::ApiV2: #25
> >>         C ET225567 rx msg c 20,0
> >>         2022-08-04 03:34:55.185657 UTC info ?OVMS::Server::ApiV2: #25
> >>         C ET225567 cmd rsp to #10 for ET225567 (queue now )
> >>         2022-08-04 03:34:55.185739 UTC info ?OVMS::Server::ApiV2: #10
> >>         A ET225567 tx msg c 20,0
> >>
> >>
> >>     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?.
> >>
> >>     Regards, Mark
> >>
> >>>     On 4 Aug 2022, at 11:36 AM, gregg hansen <gregg at rabbitev.com>
> wrote:
> >>>
> >>>     If there is a better library to try let me know.? We tried a
> >>>     couple before we landed on that one.
> >>>
> >>>     We only test with one vehicle - ET225567
> >>>
> >>>     This is my fleet vehicle, so there?s a decent chance it will be
> >>>     in use.
> >>>
> >>>     Tomorrow we?ll try some tests and send some timestamps
> >>>
> >>>     On Wed, Aug 3, 2022 at 10:31 PM Mark Webb-Johnson
> >>>     <mark at webb-johnson.net> wrote:
> >>>
> >>>         Gregg,
> >>>
> >>>         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.
> >>>
> >>>         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.
> >>>
> >>>         Or let me know vehicle ID, try it now, and I can monitor.
> >>>
> >>>         Regards, Mark.
> >>>
> >>>
> >>>>         On 4 Aug 2022, at 11:21 AM, gregg hansen
> >>>>         <gregg at rabbitev.com> wrote:
> >>>>
> >>>>         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.
> >>>>
> >>>>         NPM Lib
> >>>>         https://www.npmjs.com/package/ovms-client?activeTab=readme
> >>>>         Github
> >>>>         https://github.com/birkir/ovms-client
> >>>>         (in the Github is an instruction that explains how does the
> >>>>         library works)
> >>>>
> >>>>         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.
> >>>>
> >>>>         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.
> >>>>
> >>>>         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.
> >>>>
> >>>>         We are using OVMS v2 in the cars.
> >>>>
> >>>>         Thanks for your help and we are going to be glad to read
> >>>>         you answers
> >>>>
> >>>>         On Wed, Aug 3, 2022 at 10:07 PM Mark Webb-Johnson
> >>>>         <mark at webb-johnson.net> wrote:
> >>>>
> >>>>             Gregg,
> >>>>
> >>>>             We really need to know exactly what he is doing, and
> >>>>             with what protocols.
> >>>>
> >>>>             From the way you seem to describe it, you:
> >>>>
> >>>>              1. Have a custom app, in react native
> >>>>              2. You have a custom server, in NodeJS
> >>>>              3. You presumably have some custom protocol/api
> >>>>                 between your app and server
> >>>>              4. Your NodeJS server is talking to the OVMS server
> >>>>                 using your own implementation of v2 protocol
> >>>>
> >>>>
> >>>>             Is that correct? If so, then #4 is the only issue. The
> >>>>             V2 protocol is fairly well documented, here:
> >>>>
> >>>>
> https://docs.openvehicles.com/en/latest/protocol_v2/index.html
> >>>>
> >>>>
> >>>>             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.
> >>>>
> >>>>             In v2 protocol, locking/unlocking is performed via the
> >>>>             ?C? command.
> >>>>
> >>>>             Probably easiest to look at the sample code in the iOS
> >>>>             or Android Apps to see how that is done. For iOS, see:
> >>>>
> >>>>
> https://github.com/openvehicles/Open-Vehicle-iOS/blob/master/OpenVehicleApp/ovms/ovmsAppDelegate.m
> >>>>
> >>>>                 (The commandIssue method, and how it is called)
> >>>>
> >>>>
> >>>>             Regards, Mark.
> >>>>
> >>>>>             On 3 Aug 2022, at 11:03 PM, gregg hansen
> >>>>>             <gregg at rabbitev.com> wrote:
> >>>>>
> >>>>>             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...
> >>>>>
> >>>>>                 "The MP commands are the raw data I am trying to
> >>>>>                 send to the car to open and close the car."
> >>>>>
> >>>>>             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.
> >>>>>
> >>>>>
> >>>>>
> >>>>>             On Sun, Jul 31, 2022 at 2:26 AM Michael Balzer
> >>>>>             <dexter at expeedo.de> wrote:
> >>>>>
> >>>>>                 Pablo,
> >>>>>
> >>>>>                 a bit more information on how you connect to the
> >>>>>                 car would be helpful here.
> >>>>>
> >>>>>                 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 ovms.dexters-web.de
> >>>>>                 <http://ovms.dexters-web.de/> (public API of my
> >>>>>                 custom web shell).
> >>>>>
> >>>>>                 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.
> >>>>>
> >>>>>                 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.
> >>>>>
> >>>>>                 Docs:
> >>>>>
> >>>>>                   *
> https://docs.openvehicles.com/en/latest/components/ovms_webserver/docs/index.html#authorization
> >>>>>                   *
> https://docs.openvehicles.com/en/latest/userguide/console.html#ssh-console
> >>>>>                   *
> https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#execute-sms-command
> >>>>>                       o
> https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#lock-car
> >>>>>                       o
> https://docs.openvehicles.com/en/latest/protocol_v2/commands.html#unlock-car
> >>>>>                   *
> http://lists.openvehicles.com/pipermail/ovmsdev/2018-July/012641.html
> >>>>>                   *
> http://lists.openvehicles.com/pipermail/ovmsdev/2018-July/012696.html
> >>>>>                   *
> https://docs.openvehicles.com/en/latest/protocol_httpapi/requests.html#not-yet-implemented
> >>>>>
> >>>>>                 Which one are you referring to?
> >>>>>
> >>>>>                 Regards,
> >>>>>                 Michael
> >>>>>
> >>>>>
> >>>>>                 Am 29.07.22 um 19:28 schrieb Pablo Cabrera:
> >>>>>>                 Hello OVMS team, we are currently working with an
> >>>>>>                 implementation with OVMS in a react native app
> >>>>>>                 with a NodeJS back-end.
> >>>>>>                 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.
> >>>>>>
> >>>>>>                 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.
> >>>>>>
> >>>>>>                 Thanks for your time and help.
> >>>>>>
> >>>>>>                 _______________________________________________
> >>>>>>                 OvmsDev mailing list
> >>>>>>                 OvmsDev at lists.openvehicles.com
> >>>>>>
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> >>>>>
> >>>>>                 --
> >>>>>                 Michael Balzer *Helkenberger Weg 9 * D-58256
> Ennepetal  <
> https://www.google.com/maps/search/Helkenberger+Weg+9+*+D-58256+Ennepetal?entry=gmail&source=g
> >
> >>>>>                 Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
> >>>>>
> >>>>>                 _______________________________________________
> >>>>>                 OvmsDev mailing list
> >>>>>                 OvmsDev at lists.openvehicles.com
> >>>>>
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> >>>>>
> >>>>>
> >>>>>
> >>>>>             --
> >>>>>
> >>>>>             RabbitEV
> >>>>>             Driving Electric Cars
> >>>>>             RabbitEV.com <http://rabbitev.com/>
> >>>>>             _______________________________________________
> >>>>>             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
> >>
> >>     _______________________________________________
> >>     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
> >
> > _______________________________________________
> > 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/20220806/580c26be/attachment.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/20220806/580c26be/attachment.sig
> >
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
>
> ------------------------------
>
> End of OvmsDev Digest, Vol 127, Issue 7
> ***************************************
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20220810/16e2423a/attachment-0001.htm>


More information about the OvmsDev mailing list