[Ovmsdev] Android App beta

Michael Balzer dexter at expeedo.de
Mon Oct 10 04:10:00 HKT 2022


I build from Android Studio, no special settings (should all be in the 
files).


Am 09.10.22 um 20:22 schrieb Chris van der Meijden:
> 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 -acom.whereismywifeserver.intent.TEST --essms_body 
>>>> "test fromadb"'
>>>>
>>>> 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 
>>>>>>>> <https://github.com/devmarxx/Open-Vehicle-Android/commit/3c13100a6a25257fe694be3050a1b76ca2b6fb44#diff-c13198cb33bb355f600c37f8889cedcb72346835dbb7e357c031c57aba424487> 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
>
>
> _______________________________________________
> 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/20221009/2ee56ff5/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kustomwidget-eup.png
Type: image/png
Size: 151962 bytes
Desc: not available
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20221009/2ee56ff5/attachment-0001.png>
-------------- 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/20221009/2ee56ff5/attachment-0001.sig>


More information about the OvmsDev mailing list