[Ovmsdev] Android App beta
van der Meijden, Chris
chris at arachnon.de
Mon Oct 10 02:40:37 HKT 2022
Features and Parameters are not showing. Clicking there brings me to Messages.
Starting in landscape and then turning to portrait is fixed :-)
Am 9. Oktober 2022 20:22:50 MESZ schrieb Chris van der Meijden <chris at arachnon.de>:
>It compiled and runs without troubles, but I needed to build with
>
>gradlew build -x lint
>
>
>Am Sonntag, dem 09.10.2022 um 19:16 +0200 schrieb Michael Balzer:
>> Chris, Michael, thanks for tests & feedback.
>>
>> Code changes so far are now in the hub:
>> https://github.com/openvehicles/Open-Vehicle-Android/commit/c23b3dbd772bdae7e82601797cd3a71c2623a78c
>>
>> This has become a very large commit, and it mixes some version update
>> changes that became necessary & deprecation fixes I should have kept
>> separate, but cannot disentangle now.
>>
>> Some things still to do for the release, most notably removing UI
>> interaction from the service. So if any other stuff shall be added to
>> the next release, tell me & go ahead preparing that.
>>
>> Regards,
>> Michael
>>
>>
>> Am 09.10.22 um 17:09 schrieb Chris van der Meijden:
>>
>> I tested the new build. Everything is working fine for me.
>>
>> I think it is a good idea to restrict the respond to only
>> action.COMMAND and leave SendCommand for background operation.
>>
>>
>> Am Sonntag, dem 09.10.2022 um 16:05 +0200 schrieb Michael Balzer:
>>
>> > Chris, Michael,
>> >
>> > new builds with the announced new security scheme:
>> > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-release.apk
>> > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-debug.apk
>> > This adds a new API key authorization to both Intent interfaces.
>> > The API key is automatically generated on App launch, and can be
>> > viewed, copied and regenerated from the general options page.
>> > It can be used for both command intents by passing in as extra
>> > "apikey", allowing to omit the vehicle password. The vehicle id is
>> > now also optional on both interfaces, if omitted the current
>> > vehicle will be used. To change the car you can either pass the
>> > vehicle password or the apikey along with the vehicle id.
>> > So with am, you can now use:
>> > * am broadcast -a com.openvehicles.OVMS.SendCommand -e apikey … -e
>> > command "stat"
>> > * am start -a com.openvehicles.OVMS.action.COMMAND -e apikey … -e
>> > command "stat"
>> > The second guarantees the activity is started, so the response will
>> > be visible.
>> > I'll probably restrict displaying the response to action.COMMAND in
>> > the next build, so SendCommand will be for background operations
>> > while action.COMMAND is for interactive uses.
>> > Android 10 (API 29) has a new limitation for displaying results
>> > (starting UI activities) from a service
>> > (https://developer.android.com/guide/components/activities/background-starts
>> > ), so that works only by chance now anyway.
>> >
>> > Regards,
>> > Michael
>> >
>> >
>> > Am 09.10.22 um 12:45 schrieb Chris van der Meijden:
>> >
>> > Hi Michael,
>> >
>> > thank you for your response. As always of great help :-)
>> >
>> > Good that you could find a possible security risc concerning the
>> > credentials.
>> >
>> > Regards
>> >
>> > Chris
>> >
>> >
>> > Am Sonntag, dem 09.10.2022 um 10:53 +0200 schrieb Michael Balzer:
>> >
>> >
>> > > Chris,
>> > >
>> > > AFAIK you need to have an adb connection or a rooted Android to
>> > > use "am", so not suitable as a general way to call OVMS commands.
>> > >
>> > > With your (rooted) Lineageos you should be able to use it like
>> > > this:
>> > >
>> > > am broadcast -a com.openvehicles.OVMS.SendCommand -e
>> > > sel_vehicleid xxx -e sel_server_password xxx -e msg_command
>> > > "7,stat"
>> > >
>> > > And I missed mentioning I also added support for user command
>> > > syntax to "SendCommand", so you can now alternatively do
>> > >
>> > > am broadcast -a com.openvehicles.OVMS.SendCommand -e
>> > > sel_vehicleid xxx -e sel_server_password xxx -e command "stat"
>> > >
>> > > Playing with am, I found out…
>> > >
>> > > am start -n com.openvehicles.OVMS/.api.CommandActivity -a
>> > > com.openvehicles.OVMS.action.COMMAND -e command "stat"
>> > >
>> > > …actually works to trigger the new command receiver. I thought
>> > > restricting the new receiver to app-internal intents would be
>> > > possible, but it apparently isn't. That bothers me, it means any
>> > > App could issue a command without knowing the credentials or an
>> > > auth key and without a previous explicit user interaction to
>> > > allow this.
>> > >
>> > > So I need to add a credentials check to the new action, which
>> > > means you will need to reinstall all bookmarks / shortcut
>> > > assignments. Please wait with complex setups until I've added
>> > > that.
>> > >
>> > > Regards,
>> > > Michael
>> > >
>> > >
>> > >
>> > > Am 08.10.22 um 19:30 schrieb Chris van der Meijden:
>> > >
>> > > I have been playing with the "SH" function of KWGT and tried to
>> > > send a broadcast over the shell, like adb:
>> > >
>> > > 'am broadcast -a com.whereismywifeserver.intent.TEST --es
>> > > sms_body "test from adb"'
>> > >
>> > > That did not work, there where "rights" issues.
>> > >
>> > > I took a look at the commands documentation. I will play a bit
>> > > with that.
>> > >
>> > > Thanx for explaining!
>> > >
>> > >
>> > > Am Samstag, dem 08.10.2022 um 18:54 +0200 schrieb Michael Balzer:
>> > >
>> > >
>> > >
>> > > > Chris,
>> > > >
>> > > > "com.openvehicles.OVMS.SendCommand" is the old command action,
>> > > > it's still supported and should work the same way as before,
>> > > > except there are some new extras in the response intent.
>> > > >
>> > > > The "SendCommand" interface is raw MP function level, that's
>> > > > why you need to prefix "7," for text commands (7 = execute text
>> > > > command). Other MP commands work just the same way as raw
>> > > > commands, e.g. "20,<pin>" will lock the car if supported.
>> > > > (https://docs.openvehicles.com/en/latest/protocol_v2/commands.html
>> > > > )
>> > > >
>> > > > The newly added command intent action is
>> > > > "com.openvehicles.OVMS.action.COMMAND", it just takes one extra
>> > > > "command", which takes the command just as entered in the
>> > > > notification page. See help there for the syntax, text commands
>> > > > can be given as in the shell, to send the above MP lock
>> > > > command, you'd enter "#20,<pin>". This action currently always
>> > > > sends the command to the currently selected vehicle.
>> > > >
>> > > > KWGT doesn't support sending intents, that's why I've done all
>> > > > this.
>> > > >
>> > > > To call a stored command from KWGT, set a suitable element's
>> > > > touch handler to "start shortcut". After clicking on that
>> > > > action, you can open a selector. It will show the list of
>> > > > shortcut providers installed including the OVMS App now. Click
>> > > > on the OVMS entry, then select the command from the list of
>> > > > stored commands.
>> > > >
>> > > > Regards,
>> > > > Michael
>> > > >
>> > > >
>> > > > Am 08.10.22 um 17:54 schrieb Chris van der Meijden:
>> > > >
>> > > > Hi Michael
>> > > >
>> > > > I just installed the release apk on my degoogled Lineageos
>> > > > 19.1.
>> > > >
>> > > > Installation went without any troubles. I tested the broadcast
>> > > > with my fireplace app via webinent:
>> > > >
>> > > > action: 'com.openvehicles.OVMS.SendCommand',
>> > > > extras: {
>> > > > sel_vehicleid: vid,
>> > > > sel_server_password: pwd,
>> > > > msg_command: '7,climatecontrol on'
>> > > > }
>> > > >
>> > > > It works still fine and I can see the response dialog in the
>> > > > OVMS app.
>> > > >
>> > > > I don't understand the "MP function". Do you have an example
>> > > > for for i.e. "climatecontrol on" via Buttons in KWGT? I'd love
>> > > > to test that :-)
>> > > >
>> > > > And do you know if there is a way to send intent broadcasts
>> > > > with KWGT? I tried with a "GLOBALE", but I could not get that
>> > > > to work.
>> > > >
>> > > > Regards
>> > > >
>> > > > Chris
>> > > >
>> > > >
>> > > > Am Samstag, dem 08.10.2022 um 15:37 +0200 schrieb Michael
>> > > > Balzer:
>> > > >
>> > > >
>> > > >
>> > > >
>> > > > > New test build:
>> > > > > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-release.apk
>> > > > > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-debug.apk
>> > > > >
>> > > > > This includes major extensions & code rewrites, I think I'll
>> > > > > bump the version to 4.0 when releasing this to Google Play.
>> > > > >
>> > > > > Main goal & outcome of this effort: command bookmarks.
>> > > > >
>> > > > > The App now offers stored commands (see notifications tab).
>> > > > > Stored commands can be pinned to the launcher and selected
>> > > > > from third party Apps like KWGT as shortcuts to execute on
>> > > > > triggers / actions.
>> > > > >
>> > > > > So this enabled custom widgets to include buttons triggering
>> > > > > car commands.
>> > > > >
>> > > > > Commands are given using the user syntax, i.e. don't need the
>> > > > > MP function prefix. You can still call an MP function by
>> > > > > using the user syntax, i.e. "#…".
>> > > > >
>> > > > > Command responses are shown as a dialog with a timeoout of 5
>> > > > > seconds unless you hold it by touching or begin scrolling a
>> > > > > long response. If the App is paused it will be resumed and
>> > > > > switch to the notifications page (which keeps a record of all
>> > > > > commands & responses). If the App isn't running, only the
>> > > > > response dialog is shown on the launcher.
>> > > > >
>> > > > > All this of course needs the service to be enabled & allow
>> > > > > commands to be sent.
>> > > > >
>> > > > > Command responses are also broadcasted now, so KWGT et al can
>> > > > > receive them -- but they will currently need to know the
>> > > > > command sent previously and copy command responses if they
>> > > > > need to keep them, I don't know if KWGT can do that
>> > > > > (Automagic can). KWGT seems to only have a simple variable
>> > > > > storage model.
>> > > > >
>> > > > > I think about extending the ApiService to keep a command
>> > > > > queue so the broadcast can at least carry the command, the
>> > > > > response is supposedly produced for. Unfortunately the MP API
>> > > > > cannot guarantee this, as it doesn't currently return a copy
>> > > > > of the original command or a command ID reference with the
>> > > > > response, so this would at best be a guess. Not sure if users
>> > > > > actually need this.
>> > > > >
>> > > > >
>> > > > > Note: I haven't pushed the code changes to github yet, I'd
>> > > > > first like to get some test feedback. I've tested this on
>> > > > > Android 6, 7, 11 & 13, but not on any degoogled Androids.
>> > > > >
>> > > > > Regards,
>> > > > > Michael
>> > > > >
>> > > > >
>> > > > > Am 26.09.22 um 17:26 schrieb Chris van der Meijden:
>> > > > >
>> > > > > For an includable example it would be nice if we could send
>> > > > > the vehicle image from the OVMS app to KWGT.
>> > > > >
>> > > > > You can assign "Activities" to the "Touch" event on an image.
>> > > > > Would be cool if that works, so we can start the remote
>> > > > > climate control similar to how I do that with my OVMS-
>> > > > > Fireplace app:
>> > > > >
>> > > > > https://github.com/devmarxx/OVMS-Fireplace
>> > > > >
>> > > > >
>> > > > > Am Montag, dem 26.09.2022 um 13:56 +0200 schrieb Michael
>> > > > > Balzer:
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > >
>> > > > > > Nice, please go ahead if you want to create an includable
>> > > > > > example widget :-)
>> > > > > >
>> > > > > > I've found out you can also use progress bars to display
>> > > > > > values, enable formula input on the "step" & set the
>> > > > > > formular to e.g. $br(ovms, car_soc)$.
>> > > > > >
>> > > > > > Works, although I need to convert all car model values to
>> > > > > > strings for KWGT. Btw, I also need to unroll the TPMS
>> > > > > > arrays, they are split into a "_cnt" & "_<n>" variables. I
>> > > > > > need to add an info on this to the wiki.
>> > > > > >
>> > > > > > I haven't found out how to send a broadcast from KWGT yet,
>> > > > > > is that possible? That would enable creating command
>> > > > > > shortcuts & buttons as with Automagic.
>> > > > > >
>> > > > > > Regards,
>> > > > > > Michael
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > Am 26.09.22 um 12:13 schrieb Chris van der Meijden:
>> > > > > >
>> > > > > > Correction:
>> > > > > >
>> > > > > > $br(ovms, sel_vehicle_label)$
>> > > > > >
>> > > > > > Am Montag, dem 26.09.2022 um 12:05 +0200 schrieb Chris van
>> > > > > > der Meijden:
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > > I like the new KWGT Widget feature:
>> > > > > > >
>> > > > > > >
>> > > > > > > Above is the Tesla Widget of our Model 3, beneath that my
>> > > > > > > OVMS KWGT widget of our VW e-UP.
>> > > > > > >
>> > > > > > > I had to allow "Passing data to other apps". The syntax
>> > > > > > > for getting the intent variables to text in KWGT is i.e.
>> > > > > > >
>> > > > > > > $br(ovms, car_sel_vehicle_label)$
>> > > > > > >
>> > > > > > > Other variables can be found here:
>> > > > > > > https://github.com/openvehicles/Open-Vehicle-Android/wiki/Update-Broadcast-Intent-data
>> > > > > > >
>> > > > > > > The image is local on the filesystem of the phone and
>> > > > > > > does not come by intent.
>> > > > > > >
>> > > > > > >
>> > > > > > > Am Sonntag, dem 25.09.2022 um 16:23 +0200 schrieb Michael
>> > > > > > > Balzer:
>> > > > > > > No, icon can only be 0 from the else branch, in that case
>> > > > > > > it shall fall back to the default image.
>> > > > > > >
>> > > > > > > But I've meanwhile found (I think) your maps/track crash,
>> > > > > > > commit is already in the hub. The checkbox handler didn't
>> > > > > > > check if the map object is initialized.
>> > > > > > >
>> > > > > > > https://github.com/openvehicles/Open-Vehicle-Android/blob/master/OpenVehicleApp/src/main/java/com/openvehicles/OVMS/ui/FragMap.java#L319
>> > > > > > >
>> > > > > > > Regards,
>> > > > > > > Michael
>> > > > > > >
>> > > > > > >
>> > > > > > > Am 25.09.22 um 15:46 schrieb Chris van der Meijden:
>> > > > > > >
>> > > > > > > Just guessing, but does
>> > > > > > >
>> > > > > > > int icon;
>> > > > > > >
>> > > > > > > in MyGcmListenerService.java at line 132
>> > > > > > >
>> > > > > > > not need to be initialized like
>> > > > > > >
>> > > > > > > int icon = 0;
>> > > > > > >
>> > > > > > > now you use
>> > > > > > >
>> > > > > > > .setSmallIcon((icon != 0) ? icon :
>> > > > > > > R.drawable.map_car_default)
>> > > > > > >
>> > > > > > > at line 150 now?
>> > > > > > >
>> > > > > > > As the images and the Google stuff are related to that
>> > > > > > > integer it made me thinking ...
>> > > > > > >
>> > > > > > >
>> > > > > > > Am Sonntag, dem 25.09.2022 um 11:52 +0200 schrieb Michael
>> > > > > > > Balzer:
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > > > > Chris,
>> > > > > > > >
>> > > > > > > > that's not a crash log, that's just a warning.
>> > > > > > > >
>> > > > > > > > On that warning: the App requests
>> > > > > > > > android.permission.ACCESS_FINE_LOCATION by it's
>> > > > > > > > manifest. Maybe with LineageOS you need to manually
>> > > > > > > > give it that permission?
>> > > > > > > >
>> > > > > > > > A crash log has class "E" (error) and includes an
>> > > > > > > > exception and a backtrace, for an example see:
>> > > > > > > > https://issuetracker.google.com/issues/201308676#comment4
>> > > > > > > >
>> > > > > > > > On the crash: maybe it's because you don't have the
>> > > > > > > > Google components, not sure if FragMap can handle that.
>> > > > > > > >
>> > > > > > > > The forum post relates to /e/OS … maybe I need some
>> > > > > > > > emulator images running alternative Androids now…
>> > > > > > > >
>> > > > > > > > Regards,
>> > > > > > > > Michael
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > Am 25.09.22 um 11:40 schrieb Chris van der Meijden:
>> > > > > > > >
>> > > > > > > > Hey Michael,
>> > > > > > > >
>> > > > > > > > this is from logcat when I change "Track vehicle" and
>> > > > > > > > the app crashes:
>> > > > > > > >
>> > > > > > > > 09-25 11:16:01.410 1710 1839 W BroadcastQueue:
>> > > > > > > > Permission Denial: receiving Intent {
>> > > > > > > > act=android.intent.action.SERVICE_STATE flg=0x1000010
>> > > > > > > > (has extras) } to ProcessRecord{8dcdd54
>> > > > > > > > 2053:com.android.systemui/u0a148} (pid=2053, uid=10148)
>> > > > > > > > requires android.permission.ACCESS_FINE_LOCATION due to
>> > > > > > > > sender android (uid 1001)
>> > > > > > > >
>> > > > > > > > I saw now, that this crash also happens in the
>> > > > > > > > production app.
>> > > > > > > >
>> > > > > > > > The widget is running well. I will keep the app running
>> > > > > > > > for while and will see if it stays stable.
>> > > > > > > >
>> > > > > > > > Regards
>> > > > > > > >
>> > > > > > > > Chris
>> > > > > > > >
>> > > > > > > > Am Samstag, dem 24.09.2022 um 23:02 +0200 schrieb
>> > > > > > > > Michael Balzer:
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > > Chris,
>> > > > > > > > >
>> > > > > > > > > thanks for testing. A crash log would help on any
>> > > > > > > > > crashes you see. Btw, I don't bump the revision until
>> > > > > > > > > the actual release build.
>> > > > > > > > >
>> > > > > > > > > Crashes related to the car image don't occur
>> > > > > > > > > immediately, it sometimes takes hours of use before
>> > > > > > > > > it happens. When it does, clearing the App cache
>> > > > > > > > > fixes the crash for another random period.
>> > > > > > > > >
>> > > > > > > > > Speed optimization was one goal. What about the
>> > > > > > > > > widget?
>> > > > > > > > >
>> > > > > > > > > Thanks,
>> > > > > > > > > Michael
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > > Am 24.09.22 um 22:43 schrieb Chris van der Meijden:
>> > > > > > > > >
>> > > > > > > > > Hey Michael,
>> > > > > > > > >
>> > > > > > > > > I just installed the "release" Version on LineageOS
>> > > > > > > > > 19.1 (Android 12) without Google components.
>> > > > > > > > >
>> > > > > > > > > The vehicle setup was without any troubles. I could
>> > > > > > > > > select the yellow VW e-UP image without crashing.
>> > > > > > > > >
>> > > > > > > > > The App version is set wrong under "Vehicle info"
>> > > > > > > > > (3.19.1, 2021122401).
>> > > > > > > > >
>> > > > > > > > > Everything seems to be faster than before.
>> > > > > > > > >
>> > > > > > > > > When I change the checkbox on "Track vehicle" under
>> > > > > > > > > "Position" the App crashes. But after a new start of
>> > > > > > > > > the app the value of the checkbox has changed.
>> > > > > > > > >
>> > > > > > > > > Perhaps this first impression is of some help.
>> > > > > > > > >
>> > > > > > > > > Regards
>> > > > > > > > >
>> > > > > > > > > Chris
>> > > > > > > > >
>> > > > > > > > > Am Samstag, dem 24.09.2022 um 20:10 +0200 schrieb
>> > > > > > > > > Michael Balzer:
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > > > Everyone,
>> > > > > > > > > >
>> > > > > > > > > > I'm currently working on the next Android release
>> > > > > > > > > > including KustomWidget support and a native app
>> > > > > > > > > > widget based on the old Automagic gauge widget.
>> > > > > > > > > >
>> > > > > > > > > > Automagic has been dead for some time now, and it
>> > > > > > > > > > keeps crashing on Androids >= 7.
>> > > > > > > > > >
>> > > > > > > > > > My changes so far are in the hub, APK builds are
>> > > > > > > > > > available here:
>> > > > > > > > > >
>> > > > > > > > > >
>> > > > > > > > > > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-release.apk
>> > > > > > > > > > * debug build for extended logging: https://dexters-web.de/f/tw-
>> > > > > > > > > > beta/OpenVehicleApp-22092401-debug.apk
>> > > > > > > > > >
>> > > > > > > > > > There's an issue with the App related to Android >=
>> > > > > > > > > > 10 though, which I haven't found yet. It's been
>> > > > > > > > > > reported in the forum:
>> > > > > > > > > >
>> > > > > > > > > >
>> > > > > > > > > > * https://www.openvehicles.com/node/3410
>> > > > > > > > > > I could use some help with that, I've got no idea
>> > > > > > > > > > other than blaming Android.
>> > > > > > > > > > I've seen the effect in my emulator tests, and it
>> > > > > > > > > > seems to occur more frequently with non-roadster
>> > > > > > > > > > images.
>> > > > > > > > > >
>> > > > > > > > > > Regards,
>> > > > > > > > > > Michael
>> > > > > > > > > >
>> > > > > > > > > > _______________________________________________
>> > > > > > > > > > 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
>> > > > > > >
>> > > > > > > _______________________________________________
>> > > > > > > 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
>> > >
>> > >
>> > > _______________________________________________
>> > > 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20221009/d97c56bd/attachment-0001.htm>
More information about the OvmsDev
mailing list