[Ovmsdev] Android App beta

Michael Balzer dexter at expeedo.de
Sun Oct 9 16:53:45 HKT 2022


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

-- 
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/b4ea3de5/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/b4ea3de5/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/b4ea3de5/attachment-0001.sig>


More information about the OvmsDev mailing list